Django模板中查询集中的循环内循环
Posted
技术标签:
【中文标题】Django模板中查询集中的循环内循环【英文标题】:Loop inside loop in queryset in Django template 【发布时间】:2014-02-14 09:19:27 【问题描述】:我有这样的查询集:
hello = Hello.objects.all()
在模板中我会这样做来获取数据:
% for h in hello %
% for i in h.data % #data is stored like this ['a', 'b', 'c'] --> I want to access individual componenet, thus I would do:
i
% endfor %
% endfor %
但不是将数据生成为:
a
b
c
它产生为['a', 'b', 'c']
怎么了?我有理由将数据存储在列表中。如何分别访问每个数据。谢谢
目的:
颜色在数据字段中存储为:[black, green, brown]
因此我想实现:
div style="color: black"
div style="color: green"
div style="color: brown"
编辑
models.py
类你好(模型。模型):
用户 = 模型。外键(用户)
数据 = models.CharField(max_length=255)
def __str__(self):
return "%s's decoration photos" % self.user
【问题讨论】:
能否提供models.py源代码? 好的先生,请看我编辑的问题。 【参考方案1】:假设Hello
是一个将data
存储为CharField 的模型,那么Django 假设您有一个字符串而不是一个列表是正确的。
尝试使用名为 Color
的模型,该模型具有指向 Hello
的 ForeignKey。这将是在Hello
与其Color
对象之间建立一对多关系的正确方法。
【讨论】:
【参考方案2】:处理这个问题的最好方法是编写自己的 django 模板过滤器来迭代过滤器。
与https://docs.djangoproject.com/en/dev/ref/templates/builtins/给出的非常相似
开始就在这里。 https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
【讨论】:
在这种特殊情况下有点矫枉过正以上是关于Django模板中查询集中的循环内循环的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Django 2.1 中的模板内的 for 循环内设置变量?
如何在 django 模板中获取 for 循环内的列表的下一个元素?