/ / Customizing Selecione no Django - python, django, django-templates, django-widget

Personalização Selecione no Django - python, django, django-templates, django-widget

Eu tenho o seguinte modelo

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)

Este modelo é uma chave estrangeira para outro modelo, representado como lista suspensa. Quero modificar esta lista para que pareça

<select>
<option style="background-color:#hex1">name1</option>
<option style="background-color:#hex2">name2</option>
</select>

Eu sei que o django já faz isso, exceto o estilo. Sei também que preciso estender o widget de seleção e substituir render_option método, mas não sei como passar valores hexadecimais para o novo widget. Como posso fazer isso?

Obrigado.

Respostas:

2 para resposta № 1

A menos que eu entenda mal a pergunta, você pode simplesmente usar modelos básicos de django. Digamos que você está passando o QuerySet de cores como colours, então você usaria:

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