Почему моя функция поиска возвращает ошибку Related Field got invalid lookup: category

Моя функция поиска работает нормально, но она выдает ошибку каждый раз, когда я пытаюсь найти существующий пост на моем сайте. когда я удалил ForeignKey в модели Question в поле category ошибка исчезла. пожалуйста, как я могу отфильтровать категории, которые имеют ForeignKey

?

ошибка:

FieldError at /index/
Related Field got invalid lookup: category

мои модели:

class Category(models.Model):
    name = models.CharField(max_length=100, blank=False, null=False)

    def __str__(self):
        return str(self.name)


class Question(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=100, blank=False, null=False)
    body = RichTextField(blank=False, null=False) 
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
    slug = models.SlugField(unique=True, max_length=200)

    def save(self, *args, **kwargs):
        self.slug = slugify(self.title)
        super(Question, self).save(*args, **kwargs)

    def __str__(self):
        return str(self.title)

мнения:

def index(request):
    query = request.GET.get('q', None)
    list_of_question = Question.objects.all()
    if query is not None:
        list_of_question = Question.objects.filter(
            Q(title__icontains=query) |
            Q(category__category__icontains=query)
        )
    unread_notifications = Notification.objects.filter(user=request.user, is_read=False).count()

    paginator = Paginator(list_of_question, per_page=1)
    return render(request, 'index.html', {'unread_notifications':unread_notifications,'list_of_question':list_of_question, 'paginator':paginator})

моя форма:

<form action="" method="GET">
        <input placeholder="Search By Category" type="text" class="form-control" name="q">
    </form>

Если вы фильтруете с category__…, это означает, что остальная часть фильтра должна работать с полями модели Category, а у Category есть поле name, поэтому вы фильтруете с:

list_of_question = Question.objects.filter(
    Q(title__icontains=query) |
    Q(category__name__icontains=query)
)
Вернуться на верх