在Django模板中的queryset中循环内部循环

时间:2014-01-23 17:02:56

标签: django django-queryset django-templates

我有这样的查询集:

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 class Hello(models.Model):     user = models.ForeignKey(User)     data = models.CharField(max_length = 255)

def __str__(self):
    return "%s's decoration photos" % self.user

2 个答案:

答案 0 :(得分:0)

假设Hello是一个将data存储为CharField的模型,那么Django在假设你有一个字符串而不是一个列表时是正确的。

尝试使用名为Color的模型,该模型的ForeignKey为Hello。这是在Hello及其Color个对象之间建立一对多关系的正确方法。

答案 1 :(得分:-1)

处理此问题的最佳方法是编写自己的django模板过滤器以迭代过滤器。

https://docs.djangoproject.com/en/dev/ref/templates/builtins/

的内容非常相似

开始就在这里。 https://docs.djangoproject.com/en/dev/howto/custom-template-tags/