将Django表单字段更改为隐藏字段

6 浏览
0 Comments

将Django表单字段更改为隐藏字段

我有一个Django表单,其中包含一个RegexField,它与普通的文本输入字段非常相似。

在我的视图中,根据特定条件,我希望将其对用户隐藏,并尽量保持表单的相似性。将这个字段转换为HiddenInput字段的最佳方法是什么?

我知道可以通过以下方式在字段上设置属性:

form['fieldname'].field.widget.attr['readonly'] = 'readonly'

我也可以使用以下方式设置所需的初始值:

form.initial['fieldname'] = 'mydesiredvalue'

然而,这不会改变小部件的形式。

将这个字段变成字段的最佳/最"Django风格"/最不"hacky"的方式是什么?

0
0 Comments

问题的原因是需要将Django表单字段更改为隐藏字段。解决方法是在原始表单中定义字段,并在新类中进行覆盖。具体方法如下:

首先,在原始表单中定义字段为隐藏字段:

forms.CharField(widget = forms.HiddenInput(), required = False)

然后,在新类中对该字段进行覆盖,这样它将保持原来的位置。

0
0 Comments

问题的原因是:用户想要将一个Django表单字段改为一个隐藏字段。

解决方法是:

1. 如果你有一个自定义的模板和视图,你可以在模板中排除该字段,并使用{{ modelform.instance.field }}来获取该字段的值。

2. 在视图中,你可以使用以下代码来改变字段的小部件类型为隐藏字段:

field = form.fields['field_name']
field.widget = field.hidden_widget()

但是无法确定这样做是否会保护保存方法。

3. 对于包含多个值的字段,不支持将其小部件类型设置为HiddenInput,因此应该使用默认的隐藏输入小部件替代。

4. 在使用上述解决方法后,如果在is_valid方法中出现"" is not a valid value for a primary key.的错误提示,可能是与其他因素有关。如果你正在显示正在创建的对象的主键作为HiddenInput,那么你不应该这样做。

5. 需要先导入forms模块才能使用上述解决方法:from django import forms

6. 在Django 1.7版本中,使用以下语法:hidden_field_name = forms.CharField(label='reset', max_length=256, widget=forms.HiddenInput()),其中key是新的小部件语法的结尾部分,根据需要进行调整。

0
0 Comments

问题的原因是想要将一个Django表单字段更改为隐藏字段。解决方法是使用{{ form.field.as_hidden }}来实现。

在使用Django开发过程中,有时候需要将表单中的某个字段设置为隐藏字段。一个常见的需求是根据特定条件动态隐藏或显示表单字段。然而,使用Python代码来控制表单字段的显示方式并不是一种优雅的解决方案。

有人提出使用{{ form.field.as_hidden }}来解决这个问题。这个方法非常简洁和清晰,可以在模板中直接将字段设置为隐藏字段。但需要注意的是,使用这种方法会覆盖之前应用于字段的任何类。

将Django表单字段更改为隐藏字段的问题可以通过使用{{ form.field.as_hidden }}来解决。这种方法不仅简洁清晰,而且避免了在控制器代码中决定表单字段显示方式的麻烦。此外,还有人表示这个方法帮助了他们很多,非常出色。

0