Я хотел бы попросить вас о помощи.
У меня есть две модели. Вопрос и ответ. Один вопрос может иметь много ответов. Мои модели выглядят так:
class Question(models.Model):
question = models.CharField(max_length=300)
answered = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
votesscore = models.IntegerField(default='0')
amountofvotes = models.IntegerField(default='0')
def __str__(self):
return self.question
class Answer(models.Model):
question_id = models.ForeignKey(Question, on_delete=models.CASCADE, blank=False, null=True)
answer = models.TextField(max_length=1000)
created = models.DateTimeField(auto_now_add=True)
user = models.ForeignKey(User, on_delete=models.CASCADE)
votesscore = models.IntegerField(default='0')
amountofvotes = models.IntegerField(default='0')
def __str__(self):
return self.answer
Вот мои взгляды.py:
def home(request):
allquestionswithanswers = Answer.objects.prefetch_related('question_id')
allquestionswithoutanswers = Question.objects.filter(answered = False)
return render(request, 'main/home.html', {'allquestionswithanswers': allquestionswithanswers, 'allquestionswithoutanswers': allquestionswithoutanswers})
А вот и мой дом. html:
<h1>Questions with answers:</h1>
<ul>
{% for allquestionwithanswer in allquestionswithanswers %}
<li>
{{ allquestionwithanswer.question_id }} {{ allquestionwithanswer.user }}<br><br>
<br><br>
{{ allquestionwithanswer.answer }}
</li>
{% endfor %}
</ul>
<h1>Questions without answers:</h1>
<ul>
{% for allquestionwithoutanswer in allquestionswithoutanswers %}
<li>
{{ allquestionwithoutanswer.question }} {{ allquestionwithoutanswer.user }}
<br><br>
{{ allquestionwithoutanswer.answer }}
</li>
{% endfor %}
</ul>
И некоторые вещи работают, а некоторые нет, и я не понимаю, как я могу их исправить: (
У меня работает "Вопросы с ответами:". Это список моего вопроса и соответствующего ответа, но если вопрос имеет несколько ответов, печатает вопрос много раз, каждый раз со следующим ответом. Мне бы хотелось, чтобы это выглядело так: -Вопрос 1 -Ответ 1 -Ответ 2 -Вопрос 1 -Ответ1
Я знаю, что я должен go с вложенными циклами, но я поэкспериментировал с ним, и я не могу заставить его работать.
И моя вторая проблема: в "Вопросах без ответов:" Я хочу перечислить все вопросы, на которые логическое "ответил" = Ложь. Но можно установить значение false, но иметь несколько ответов, и если это произойдет, я бы тоже хотел перечислить эти ответы. Но здесь у меня проблема с моделями, поскольку модель вопроса не имеет информации об ответе. Это работает только по-другому.
Буду очень признателен за любую помощь и указания.
Спасибо и ура!