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はすでにこれを行っていることを知っています。select Widget と override メソッドを拡張する必要があることも知っていますrender_optionが、16 進値を新しいウィジェットに渡す方法がわかりません。どうすればこれを行うことができますか?

ありがとうございました。

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 に答える