Django - добавить класс к отдельным строкам в ModelChoiceField? - PullRequest
2 голосов
/ 09 сентября 2011

Я использую поле выбора модели в одной из моих форм, и я хотел бы добавить класс CSS для каждой опции на основе значения атрибута модели.

Есть ли простой способ?сделать это?

Любой совет приветствуется.

Спасибо.

1 Ответ

2 голосов
/ 09 сентября 2011

Два варианта:

  1. Вам придется визуализировать выделение в шаблоне самостоятельно, повторяя {{form.field_name.choices}} и генерируя класс.

  2. Создайте собственный виджет, который расширяет django.forms.widgets.Select и переопределяет его метод render_option ().Например, как это реализовано, смотрите render_option () в источнике django .Используйте виджет в форме (как виджет поля).

    Вы можете увидеть другой пример чего-то похожего (в этом случае отключенные опции) в фрагментах django: Разрешить отключение опций в выбранном виджете .

ИМО, второй вариант более чистый: его можно использовать многократно и не нужно связываться с шаблонами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...