很抱歉深入挖掘,认为我的错误很容易修复,但是几个小时后我就不相处了。更新了工作代码:
查看:
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
上。
所以我的问题是当我像上面那样渲染循环时,我有以下输出:
标签:width,tag:width,tag:width,tag:width,...
我需要的是循环遍历TodoList
而不是TodoItem
我预期输出的位置:
标签:宽度,宽度,宽度| tag:width,width ...
(动态添加宽度的数量但是当我添加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
输出失败。我在试用模板时不遗余力。
谁能请你帮帮我
答案 0 :(得分:0)
你不需要改变你的观点。我想,我希望你有从列表到项目的一对多(ForeignKey)
在这种情况下,只需在您的模板中执行:
{% 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")