在Django中自定义选择

时间:2013-10-23 13:17:52

标签: python django django-templates django-widget

我有以下型号

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。 我该怎么办?

谢谢。

1 个答案:

答案 0 :(得分:2)

除非我误解了这个问题,否则你可以使用基本的django模板。我们假设您将颜色查询集传递为colours,然后您将使用:

<select>
{% for colour in colours %}
<option style="background-color:#{{ colour.hex }}">{{ colour.name }}</option>
{% endfor %}
</select>