Я создаю платформу вопросов и ответов, которая поможет компаниям понять потребности своих клиентов. Как вы можете видеть в представлениях view_question, я показываю ответ на основе вопроса, и он работает отлично. Однако при отображении комментариев к ответу с помощью этого метода:
answers = Answer.objects.filter(post=question)
answers_comment = CommentA.objects.filter(post=answers)
Этот метод возвращает ошибку в шаблоне: значение QuerySet для точного поиска должно быть ограничено одним результатом с использованием срезов. затем я пытаюсь отобразить его с помощью этого метода :
answers = Answer.objects.filter(post=question)
answers_comment = CommentA.objects.filter(post__id__in=answers)
Вроде бы проблема решена, но это не так. Answers_comment отображает все объекты комментариев к одному объекту ответа, даже если они не были назначены этому ответу.
{% for answer in answers %}
{{ answer_comment.user.username }}
{{ answer_comment.created_at|naturaltime }}
{% endwith %}
{% endfor %}
def view_question(request, slug):
question = get_object_or_404(Question, slug=slug)
answers = Answer.objects.filter(post=question)
answers_comment = CommentA.objects.filter(post__id__in=answers)
context = {"question":question, "answers":answers, "answers_comment":answers_comment}
return render(request, 'view_question.html', context)
модели:
class Question(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=225)
body = models.TextField()
class Answer(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
your_answer = models.TextField()
post = models.ForeignKey(Question, on_delete=models.CASCADE)
class CommentA(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
comment = models.TextField()
post = models.ForeignKey(Answer, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
Подробнее здесь: https://stackoverflow.com/questions/784 ... er-objects
Комментарии правильно назначены для объектов ответа, но отображаются в одном объекте ответа. ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение