filters = Q(author=keyword) | Q(name=keyword) | Q(text=keyword)
Posts.objects.filter(filters)
filters#переменная не определена, ошибка
Posts.objects.filter(filters)
def get_queryset(self):
if not self.request.GET:
return Posts.objects.all()#если нет параметров, просто возвращаем все посты
keyword = self.request.GET.get('key')#получаем ключевое слово
filters = Q()#создаем первый объект Q, что бы складывать с ним другие
for key in ['author', 'name', 'text']:
value = self.request.GET.get(key)
if value:
filters |= Q(**{f'{key}__icontains': keyword})
return Posts.objects.filter(filters)
def get_queryset(self):
if not self.request.GET:
return Posts.objects.all()#если нет параметров, просто возвращаем все посты
keyword = self.request.GET.get('key')#получаем ключевое слово
author= self.request.GET.get('author')#если параметра нет, get() вернет None что равняется False
name = self.request.GET.get('name')#если параметра нет, get() вернет None что равняется False
text = self.request.GET.get('text')#если параметра нет, get() вернет None что равняется False
filters = Q()#создаем первый объект Q, что бы складывать с ним другие
if author:
filters |= Q(name__icontains=keyword )
if name:
filters |= Q(name__icontains=keyword )
if text:
filters |= Q(name__icontains=keyword )
return Posts.objects.filter(filters)