Я хочу искать 'query' в каждом потомке и выводить результаты в list.html. Я не мог найти решение, поэтому я решил спросить здесь. Вот мой код:
def search_query_string(request, path=None, instance=None):
query = request.GET.get('query', False)
category = request.GET.get('category', False)
if category:
cat = get_object_or_404(Category, name=category)
children = cat.get_descendants(include_self=False)
ads = None
if query:
if category:
ads = Ad.objects.filter(Q(name__icontains=query) ) # I want to search query in children here
return render_to_response('ads/list.html', locals(), context_instance=RequestContext(request))
ads = Ad.objects.filter(Q(name__icontains=query))
return render_to_response('ads/list.html', locals(), context_instance=RequestContext(request))
Как видите, у меня уже есть список дочерних категорий, но я все еще не знаю, как их искать. Пожалуйста, помогите: (
EDIT
Так что я наконец понял, как это сделать. Вот оно:
def search_query_string(request, path=None, instance=None):
query = request.GET.get('query', False)
category = request.GET.get('category', False)
query_list = []
if category:
parent = get_object_or_404(Category, name=category)
children = parent.get_descendants(include_self=False)
for c in children:
query_list.append(c.name)
print(query_list)
ads = None
if query:
if category:
ads = Ad.objects.filter(Q(name__icontains=query) & Q(category__name__in=query_list))
return render_to_response('ads/list.html', locals(), context_instance=RequestContext(request))
ads = Ad.objects.filter(Q(name__icontains=query))
return render_to_response('ads/list.html', locals(), context_instance=RequestContext(request))