Отрисовка модели отношений в шаблоне - PullRequest
0 голосов
/ 16 июня 2020

Я пытаюсь визуализировать модель с отношениями, но не могу это сделать.

class LogBook(models.Model):
        name = models.CharField(max_length=50, verbose_name="Nom du registre de maintenance")
        members = models.ManyToManyField(User)

    class LogMessages(models.Model):
        logbook = models.ForeignKey(LogBook)
        message = models.CharField(max_length=200, verbose_name="Détail du problème")

    class LogDone(models.Model):
        logmessage = models.ForeignKey(LogMessages)
        message = models.CharField(max_length=200)

Мое мнение:

log = get_object_or_404(LogBook, pk=log_id)
logmessages = LogMessages.objects.filter(logbook=log_id)

My template

{% for logmessage in logmessages.all %}
{{logmessage.logdone.message}}
{{% endfor %}}

Но объект logdone не отображается, есть идея?

Ответы [ 2 ]

0 голосов
/ 17 июня 2020

Я забыл, что добавил related_name, равный «logdones», поэтому сделал следующее:

{% for logmessage in logmessages %}
{% for done in logmessage.logdones.all %}
    {{ done.message }}
{% endfor %}
{% endfor %}

И теперь оно работает, спасибо @ Vishal

0 голосов
/ 16 июня 2020

Поскольку ваша модель LogMessage имеет внешний ключ для ведения журнала, это не отношение «один к одному», и вам необходимо получить доступ к связанным объектам LogDone, используя нотацию _set. Думаю, есть еще и небольшая опечатка. Он должен logmessages, а не logmessages.all

{% for logmessage in logmessages %}
{% for done in logmessage.logdone_set.all %}
    {{ done.message }}
{% endfor %}
{% endfor %}


...