django:两个不同类的字段一个循环?

时间:2014-12-18 12:33:41

标签: python django views

很抱歉深入挖掘,认为我的错误很容易修复,但是几个小时后我就不相处了。更新了工作代码:

查看:

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输出失败。我在试用模板时不遗余力。 谁能请你帮帮我

1 个答案:

答案 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")