Related Field got invalid lookup: icontains - While Search Tag
Я создаю BlogApp и пытаюсь реализовать поле поиска, которое будет искать (фильтровать) по введенным tag
.
Когда я пытаюсь зайти на страницу, она продолжает отображаться
Связанное поле получило недействительный поиск: icontains
models.py
class BlogPost(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE)
title = models.CharField(max_length=30,default='')
tags = TaggableManager()
views.py
from taggit.models import Tag
def search_page(request):
query = request.GET.get('p')
object_list = BlogPost.objects.filter(tags__icontains=query)
context = {'posts': object_list, 'query': query}
return render(request, 'search.html', context)
Я также пробовал разные методы, но все равно выдает ту же ошибку.
- Я попробовал
.filter(tags__in=query)
затем он показал
Объект 'NoneType' не является итерируемым
- Я попробовал
Tag.objects.filter(question__tags__icontains=query)
затем он показал
Связанное поле получило недействительный поиск: icontains
Любая помощь будет очень признательна. Thank You in Advance.
Вы должны указать, что вы ищете имя тега, так:
object_list = BlogPost.objects.filter(tags__name__icontains=query)
Вы должны фильтровать только при наличии запроса, поэтому:
from taggit.models import Tag
def search_page(request):
query = request.GET.get('p')
object_list = BlogPost.objects.all()
if query is not None:
object_list = object_list.filter(tags__icontains=query)
context = {'posts': object_list, 'query': query}
return render(request, 'search.html', context)
вероятно, вы также хотите использовать q
вместо для имени параметра запроса.p