Django 小部件调整手动设置输入字段值?

问题描述 投票:0回答:1

我正在寻找一种简单的方法来在 Django 模板中手动设置表单字段 (ModelForm) 值。我试过这个

{% render_field my_form.my_field value=200 %}

(尝试过带引号和不带引号)但它不起作用,字段仍然显示 0。 我无法提前填充这些字段(覆盖 ModelForm 中的表单初始化或类似字段),因为稍后我需要根据其他输入字段(使用 HTMX)动态更改输入值。

django django-widget-tweaks
1个回答
0
投票

如果我能正确回答您的问题,您正在寻找一种在模板中手动设置表单字段值的方法,特别是当您稍后需要使用 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
库的一部分,它允许您调整模板中的表单字段渲染,但它不会直接设置字段的值。
render_field
中的value参数用于设置HTML value属性,而不是表单实例中绑定字段的值。这就是您的代码最初无法工作的原因。

您可以在视图的表单实例中设置值,然后在模板上下文表单渲染之前获取它。这是代码:

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

请务必将

my_form and my_field
替换为您模型中的实际表单类和字段实例。祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.