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

2024-05-06 15:02:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个带有RegexField的Django表单,它非常类似于普通的文本输入字段。

在我看来,在某些情况下,我想对用户隐藏它,并尽量保持表单的相似性。将此字段转换为HiddenInput字段的最佳方法是什么?

我知道我可以通过以下设置字段的属性:

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

我可以设置所需的初始值:

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

但是,这不会改变小部件的形式。

什么是使这个字段成为<input type="hidden">字段的最佳/最“django-y”或最不“hacky”的方法?


Tags: django方法用户文本form表单field属性
3条回答

这也可能有用:{{ form.field.as_hidden }}

一个对我有用的选项,将原始表单中的字段定义为:

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

当你在新的类中重写它时,它会保留它的位置。

如果有自定义模板和视图,则可以排除该字段并使用{{ modelform.instance.field }}获取值。

此外,您可能更喜欢在视图中使用:

form.fields['field_name'].widget = forms.HiddenInput()

但我不确定它是否能在邮件中保护保存方法。

希望有帮助。

相关问题 更多 >