当前位置: 首页 > 知识库问答 >
问题:

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

洪祺
2023-03-14

我有这样的疑问:

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']

发生了什么?我有理由在列表中存储数据。如何分别访问每个数据。谢谢

用途:颜色存储在数据字段中为:[黑色、绿色、棕色],因此我希望实现:

div style="color: black"
div style="color: green"
div style="color: brown"

编辑models.py类Hello(models.Model):用户=模型。外键(用户)数据=模型。字符域(最大长度=255)

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

共有2个答案

皇甫才良
2023-03-14

处理这个问题的最好方法是编写你自己的django模板过滤器来迭代过滤器

非常类似于https://docs.djangoproject.com/en/dev/ref/templates/builtins/

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

况繁
2023-03-14

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

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

 类似资料:
  • 问题内容: 如何在Django模板中编写数字循环?我的意思是 问题答案: 我使用了一种简单的技术,该技术非常适合没有特殊标签且没有其他上下文的小情况。有时候这很方便

  • 问题内容: 这是我的代码: 但显示错误, 我能做什么 , 谢谢 问题答案: views.py: HTML:

  • 我需要在每个循环中生成唯一的id,而不是"城市选择" 我如何在这里生成它? 我需要一些像这样的ID: 输出:

  • 问题内容: 我需要在模板中循环。 它是与预准备数组一起使用的一种方法,还是如何将此功能添加到模板中? 问题答案: 最简单的方法可能是使用和外部函数。例如(播放中): 在模板中:

  • 问题内容: 我在显示日期的django模板中有以下for循环。我想知道是否有可能在循环中迭代一个数字(在以下情况下为i)。还是我必须将其存储在数据库中,然后以days.day_number的形式查询? 问题答案: Django提供了它。你可以使用以下任一方法: 索引从1开始。 索引从0开始。 在模板中,你可以执行以下操作:

  • 在django模板中,我有以下for循环显示天数。我想知道是否有可能在循环中迭代一个数字(在下面的例子I中)。或者我必须将其存储在数据库中,然后以天的形式进行查询。第几天?