Я пытаюсь использовать Django для отображения таблицы информации по нескольким моделям, и я не уверен, каковы наилучшие методы для этого.Вот урезанная версия моего models.py:
from django.contrib.auth.models import User
class Widget(models.Model):
name = models.CharField(max_length=50)
pass
class Finished_Widget(models.Model):
user = models.ForeignKey(User)
thing = models.ForeignKey(Thing)
created = models.DateTimeField(editable=False)
Это довольно простая установка с подключением пользователя и виджета через неизвестное число объектов Finished_Widget.В моем html я хотел бы показать список экземпляров имен виджетов и дату самого последнего готового виджета.Очевидно, что приведенный ниже код не работает, но, надеюсь, он проиллюстрирует, какие данные я хочу получить.
{% for widget in widget_list %}
<p>{{ widget.name }}</p>
<p>{{ widget__Finished_Widget.latest.created }}</p>
{% endfor %}
Я подумал о ряде различных подходов к проблеме, в том числе:
- добавление желаемой даты в качестве дополнительного атрибута через представление
- , создание словаря в представлении и вызов его в шаблоне
- ManyToManyField с использованием 'through'аргумент
- добавление мета в вызов виджета к дате создания последней версии Finished_Widget
К сожалению, я не смог сделать ни одну из этих работ, и я неуверен, что, если таковые имеются, даже на правильном пути.
Примечание: я уже нашел довольно много вариантов этой проблемы на SO, что делает ее довольно близкой к обману, но они не кажутсячтобы мне очень помогло из-за необходимости сузить список Finished_Widget до тех, которые соответствуют идентификатору пользователя, совпадают с идентификатором виджета, и только самый последний.