Django виджет твики вручную установить значение поля ввода?

Я ищу простой способ вручную установить значение поля формы (ModelForm) в шаблоне Django. Я пробовал следующее

{% render_field my_form.my_field value=200 %}

(пробовал с кавычками и без), но это не работает, поле по-прежнему отображает 0. Я не могу заполнить эти поля заранее (перезаписав инициализацию формы в ModelForm или аналогичной), потому что позже мне нужно будет динамически изменять вводимые значения, основываясь на других полях ввода (используя HTMX).

Если я правильно понял ваш вопрос, вы ищете способ вручную установить значение поля формы в шаблоне, особенно когда вам нужно динамически изменить значения позже с помощью HTMX, вы можете использовать атрибут value виджета поля формы. Вот как вы можете это сделать.

     # update of your code, here is the correct version
  {{ my_form.my_field.value|default_if_none:"200" }}

# NB: The above code will render the field with a value of 200 if the current value is None. If the field already has a value, it will display the existing value.

PS: Помните, что упомянутый вами тег render_field является частью библиотеки django-widget-tweaks, которая позволяет настраивать отрисовку полей формы в шаблоне, но не задает непосредственно значение поля. Параметр value в render_field используется для установки атрибута HTML value, а не значения связанного поля в экземпляре формы. Именно по этой причине ваш код изначально не мог работать.

Вы можете установить значение в экземпляре формы вашего представления, а затем получить его перед рендерингом формы контекста шаблона. Вот код:

 my_form.fields['my_field'].initial = 200

Пожалуйста, замените my_form and my_field на реальный класс формы и экземпляр поля, которые есть в вашей модели. Удачи!

Вернуться на верх