我有以下模型:
class Log(models.Model):
log_order = models.IntegerField(validators=[MinValueValidator(1)],blank=True, null=True)
class ActiveSession(models.Model):
log = models.ManyToManyField(Log, related_name='savedlogs')
在我看來,我試圖獲得ActiveSession
與模型有多對多關系的最后一個創建,Log
以便在它們之間進行迭代。
這就是我創建視圖的方式:
def get_context_data(self, **kwargs):
active_session =ActiveSession.objects.get(id=ActiveSession.objects.last().id)
context = super().get_context_data(**kwargs)
return context
我認為我的問題在于get
我嘗試使用 filter(id=id).latest 但它沒有用。
這是模板:
{% for x in active_session %}
{{ x.log_order }}
{% endfor %}
我目前正在TypeError: 'ActiveSession' object is not iterable
我的問題:
如何修復此錯誤以及如何使用模板中的 for 回圈來顯示Log
每個ActiveSession
.
在此示例中,活動會話中有 3 個日志,我想顯示每個日志的 log_order
uj5u.com熱心網友回復:
您應該將單個ActiveSession
物件傳遞給模板,然后遍歷與會話關聯的日志實體。
class FooView(generic.View):
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["active_session"] = ActiveSession.objects.last()
return context
# template.html
{% for log in active_session.log.all %}
{{ log }}
{% endfor %}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/512354.html
標籤:python-3.xdjangodjango-views