/ / Dostosowywanie Wybierz w Django - python, django, django-templates, django-widget

Dostosowywanie Wybierz w Django - python, django, django-templates, django-widget

Mam następujący model

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)

Ten model jest kluczem obcym dla niektórych innych modeli, dlatego jest reprezentowany jako lista rozwijana. Chcę zmodyfikować tę listę, aby wyglądała tak

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

Wiem, że django już to robi, z wyjątkiem stylizacji. Wiem też, że muszę rozszerzyć wybraną Widżet i zastąpić render_option , ale nie wiem, jak przekazać wartości szesnastkowe do nowego widżetu. Jak mogę to zrobić?

Dziękuję Ci.

Odpowiedzi:

2 dla odpowiedzi № 1

Chyba że źle zrozumiem pytanie, możesz po prostu użyć podstawowych szablonów django. Powiedzmy, że przekazujesz QuerySet kolorów jako colours, wtedy możesz użyć:

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