Я повторяю поля формы и для определенных полей хочу немного другой макет, требующий изменения HTML.Получить вид виджета формы Django из шаблона
Чтобы сделать это точно, мне просто нужно знать тип виджета. Его название класса или что-то подобное. В стандартном питоне это легко! field.field.widget.__class__.__name__
К сожалению, вы не имеете права доступа к символам подчеркивания в шаблонах. Отлично!
Вы можете тест field.field.widget.input_type
, но это работает только для текстовых/паролей <input ../>
типов. Мне нужно больше разрешения.
Для меня, как бы сложно это ни выглядело, имеет смысл сделать это на уровне шаблона. Я передал часть кода, обрабатывающего HTML для полей, в отдельный шаблон, который включается в цикл цикла. Это означает, что он согласован между ModelForm
и стандартом Form
s (что-то, что не было бы правдой, если бы я написал промежуточный класс формы).
Если вы видите универсальный подход, который не требует от меня редактирования 20-тичных форм, дайте мне знать!
Соответствующий отчет об ошибке или функция запроса: https://code.djangoproject.com/ticket/13009 – Flimm