很抱歉深入挖掘,以为我的错误很容易修复,但几个小时以来我就不相处了。更新的工作代码:
视图:
def post_list(request):
posts = TodoItem.objects.order_by('id')
return render(request, 'blog/post_list.html', {'posts': posts})
模板:
{% for post in posts %}
{{ post.list.tag }}
{{ post.width }}
{% endfor %}
模型:
class TodoList(models.Model):
tag = ...
class TodoItem(models.Model):
width = ...
list = models.ForeignKey(TodoList, related_name="list_items")
{{ post.list.tag }}
,list = models.ForeignKey
做到了!
一切正常,但因为有了TodoItems
我可以动态添加表单,大多数时候我在TodoItems
上有更多的字段,然后在TodoList
上。所以我的问题是当我像上面这样渲染循环时,我有以下输出:
, 标签:宽度, ...
我需要的是遍历TodoList
,而不是TodoItem
我期望以下输出的地方:
| 标签: 宽度, 宽度 ...
(宽度的数量是动态添加的,但是当我添加例如 4 次width
时,应该只有一个相关的tag
(我在这里尝试了很多附近的一个例子
视图:TodoList
而不是TodoItem
def post_list(request):
posts = TodoList.objects.order_by('id')
return render(request, 'blog/post_list.html', {'posts': posts})
但随后在模板TodoList
输出失败。我在模板上进行了尝试。任何人都可以在这里帮助我吗
改变你的视图。 我认为并希望您从列表到项目有一对多(外键(
在这种情况下,只需在您的模板中执行:
{% for post in posts %}
{{ post.list.tag }}
{{ post.width }}
{% endfor %}
您的模型将如下所示:
class TodoList(models.Model):
name = ...
tag = ...
class TodoItem(models.Model):
# ...
list = models.ForeignKey(TodoList, related_name="list_items")