我有以下型号
class Color(models.Model):
"""
Colors
"""
name = models.CharField(max_length=50, db_column="name", unique=True)
hex = models.CharField(max_length=6, db_column="hex", unique=True)
此模型是其他模型的外键,因此表示为下拉列表。 我想修改此列表,使其看起来像
<select>
<option style="background-color:#hex1">name1</option>
<option style="background-color:#hex2">name2</option>
</select>
我知道django已经这样做了,除了造型。
我也知道我需要扩展select Widget并覆盖render_option
方法,但我不知道如何将十六进制值传递给新的widget。
我该怎么办?
谢谢。
答案 0 :(得分:2)
除非我误解了这个问题,否则你可以使用基本的django模板。我们假设您将颜色查询集传递为colours
,然后您将使用:
<select>
{% for colour in colours %}
<option style="background-color:#{{ colour.hex }}">{{ colour.name }}</option>
{% endfor %}
</select>