Django отображает связанные объекты
У меня есть модели для ProjectNotes и для ProjectNotesComments. ProjectNotesComments имеет внешний ключ, который является идентификатором ProjectNotes. Я могу сохранять комментарии к заметкам. Я могу видеть их в панели администратора.
Однако я не смог понять, как отобразить комментарии к заметкам.
Вот модели:
class ProjectNotes(models.Model):
title = models.CharField(max_length=200)
body = tinymce_models.HTMLField()
date = models.DateField(auto_now_add=True)
project = models.ForeignKey(Project, default=0, blank=True, on_delete=models.CASCADE, related_name='notes')
def __str__(self):
return self.title
class ProjectNoteComments(models.Model):
body = tinymce_models.HTMLField()
date = models.DateField(auto_now_add=True)
projectnote = models.ForeignKey(ProjectNotes, default=0, blank=True, on_delete=models.CASCADE, related_name='comments')
Вот вид:
class ProjectNotesDetailView(DetailView):
model = ProjectNotes
id = ProjectNotes.objects.only('id')
template_name = 'company_accounts/project_note_detail.html'
comments = ProjectNotes.comments
Этот шаблон я сейчас использую для тестирования отображения комментариев:
{% extends 'base.html' %}
{% block content %}
<div class="section-container container">
<div class="project-entry">
<h2>{{ projectnotes.title }}</h2>
<p>{{ projectnotes.body | safe }}</p>
</div>
<div>
</div>
{% for comment in comments %}
<div class="comments" style="padding: 10px;">
<p class="font-weight-bold">
{{ comment.body | linebreaks }}
</div>
{% endfor %}
<h2><a href="{% url 'add_project_note_comment' projectnotes.pk %}">add note</a></h2>
{% endblock content %}
<
<
Вернуться на верх
{% for comment in projectnotes.comments %}
Однако это совсем не обязательно, поскольку вы можете добраться до из объекта , а объект уже находится в . Просто измените цикл на следующий: