0

我有以下型号

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 已经这样做了,除了样式。我也知道我需要扩展选择小部件和覆盖render_option方法,但我不知道如何将十六进制值传递给新小部件。我该怎么做?

谢谢你。

4

1 回答 1

2

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

<select>
{% for colour in colours %}
<option style="background-color:#{{ colour.hex }}">{{ colour.name }}</option>
{% endfor %}
</select>
于 2013-10-23T20:26:26.873 回答