我有这样的查询集:
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']
怎么了?我有理由将数据存储在列表中 . 如何单独访问每个数据 . 谢谢
Purpose: 颜色存储在数据字段中: [black, green, brown]
因此我想实现:
div style="color: black"
div style="color: green"
div style="color: brown"
Edit 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 回答
处理此问题的最佳方法是编写自己的django模板过滤器以迭代过滤器 .
与https://docs.djangoproject.com/en/dev/ref/templates/builtins/给出的非常相似
开始就在这里 . https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
假设
Hello
是一个将data
存储为CharField的模型,那么Django在假设你有一个字符串而不是一个列表时是正确的 .尝试使用名为
Color
的模型,该模型具有Hello
的ForeignKey . 这将是Hello
与其Color
对象之间 Build 一对多关系的正确方法 .