我有一个存储列表的对象字段。Django模板将列表视为字符串,它遍历每个字符,而不是每个列表值。
已尝试以多种方式保存对象字段,“1”、“2”和"1,2“。已尝试"|make_list“过滤器。
models.py
class SpecialField(models.Model):
name = models.CharField(max_length=200,blank=True,null=True)
description = models.CharField(max_length=200,blank=True,null=True)
value_options = models.CharField(max_length=200,blank=True,null=True)
# value_options might be "['1','2']" or "red, green, blue"
views.py
object_field_list= SpecialField.objects.all()
context = {
'object_field_list': object_field_list,
}
return render(request, 'app1/template-detail.html', context)
模板
{% for object_field in object_field_list%}
{% for list_value in object_field.value_options %}
<option>{{ list_value }}</option>
{% endfor %}
{% endfor %}
我一直在期待:
<option>1</option>
<option>2</option>
但我得到的是:
<option>[</option>
<option>'</option>
<option>1</option>
<option>'</option>
<option>,</option>
<option>'</option>
<option>2</option>
<option>'</option>
<option>]</option>
发布于 2019-06-26 00:23:50
您希望显示模型中的数据,因此假设您有一个模型
class SpecialField(models.Model):
name=models.CharField(max_length=101)
price = models.IntegerField(default=0)
根据您在context
中设置的方式,您可以使用以下命令在模板中显示
{% for obj in object_field_list %}
{{ obj.name}} - {{ obj.price }}
{% endfor %}
显然,你需要修改你的模型
在suggestion...it上进行调整需要更多级别的循环。还是不能让它工作。
models.py
class SpecialField(models.Model):
name=models.CharField(max_length=101)
price = models.IntegerField(default=0)
custom_list = models.CharField(max_length=200)
模板
{% for obj in object_field_list %}
{{ obj.name}} - {{ obj.price }}
{% for list_value in obj.custom_list %}
{{ list_value }}
# this is where it's breaking for me
{% endfor %}
{% endfor %}
发布于 2019-06-26 04:53:00
这是最方便的solution...define,一个使用split的新列表。https://stackoverflow.com/a/8318915/9268133。感谢大家的帮助!
https://stackoverflow.com/questions/56756030
复制相似问题