【问题标题】:Loop inside loop in queryset in Django templateDjango模板中查询集中的循环内循环
【发布时间】: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源代码?
  • 好的先生,请看我编辑的问题。

标签: django django-queryset django-templates


【解决方案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/

    【讨论】:

    • 在这种特殊情况下有点矫枉过正
    猜你喜欢
    • 2023-04-09
    • 2014-03-09
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    相关资源
    最近更新 更多