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
Post a Comment