python - Name 'Q' is not defined -


hi im writing search view searching alumni within prepopulated database using django. search prepopulated database alumni based on users input , return users via template. error says name 'q' not defined

def alumni_search(request, form_class=find_alumniform, template_name='alumni/find_alumni.html'):     form = none     if request.method == 'post':             #do search             form = form_class(request.post)             if form.is_valid():                     results = search(form.cleaned_data)                     if results:                             return render(request, template_name, {'form': form, 'alumni': results})     else:             form = form_class()     return render(request, template_name, {'form': form})  def search(search_data):     q = q()     results = none       searcher = alumni_search(search_data)      key in search_data.iterkeys():             dispatch = getattr(searcher, 'search_%s' % key)             q = dispatch(q)     if q , len(q):             results = alumni.objects.filter(q).select_related()     #.order_by('-pk')     else:             results = []     return results  class alumnisearch(object):     def __init__(self, search_data):             self.__dict__.update(search_data)      def search_keywords(self, q):             if self.keywords:                     words = self.keywords.split()                     first_name_q = q()                     last_name_q = q()                     word in words:                             first_name_q = first_name_q | q(first_name__icontains=word)                             last_name_q = last_name_q | q(last_name__icontains=word)                     keyword_q = first_name_q | last_name_q                     q = q & keyword_q             return q 

you should import q class before using it:

from django.db.models import q 

Comments