Получить все данные из модели искомого тега на другой странице

Я создаю простое веб-приложение "Вопросы и ответы" и реализую функцию поиска по тегам, и оно будет показывать все вопросы, связанные с ним.

Теперь я пытаюсь показать все данные моделей на другой странице, которая прикреплена к этому искомому тегу.

Затем я делаю запрос другой модели с searched tag, но он показывает

Поле 'id' ожидало число, а получило 'first_post'.

models.py

class Question(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    title = models.CharField(max_length=30,default='')
    tags = TaggableManager()

class Answer(models.Model):
    answer_user = models.ForeignKey(User,on_delete=models.CASCADE)
    quest = models.ForeignKey(Question,on_delete=models.CASCADE)
    body = models.CharField(max_length=30)

views.py

def search(request):
    query = request.GET.get('q')

    answer = ''
    objs = ''

    if query:
        objs = Question.objects.filter(tags__name__icontains=query)

        answer = Answer.objects.filter(quest=query)

    context = {'objs': objs,'answer':answer}

    return render(request, 'search.html', context)

Когда я запускаю эту программу, она показывает Field 'id' expected a number but got 'first_post'.

Что я пытаюсь сделать :-

Я пытаюсь сделать страницу поиска и если я ищу тег, то ссылка на другую страницу всех ответов искомых тегов, Но я понятия не имею, как я могу прикрепить два вида, чтобы одна страница показывала результаты, а другая показывала ответы.

Любая помощь будет очень признательна. Заранее благодарю

Когда вы не указываете, какое поле вы ищете в таблице quest, она будет искать id по default. Поэтому вам необходимо явно определить имя таблицы:

answer = Answer.objects.filter(quest__tags__name__icontains=query)

Доброе утро, вам нужно отфильтровать ответы на вопросы, связанные с заданным тегом:

def search(request):
    query = request.GET.get('q')

    answer = ''
    objs = ''

    if query:
        objs = Question.objects.filter(tags__name__icontains=query)

        answer = Answer.objects.filter(quest__in=objs)

    context = {'objs': objs,'answer':answer}

    return render(request, 'search.html', context)
Вернуться на верх