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

新手上路,请多包涵

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

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

我知道我可以在字段上设置属性:

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

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

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

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

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

原文由 Amandasaurus 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 882
2 个回答

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

您也可能更喜欢在视图中使用:

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

但我不确定它会在发布时保护保存方法。

编辑:具有多个值的字段不支持 HiddenInput 作为输入类型,因此请为此字段使用默认的隐藏输入小部件。

希望能帮助到你。

原文由 christophe31 发布,翻译遵循 CC BY-SA 4.0 许可协议

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

原文由 semente 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题