Django Form - 渲染表单在模板中更改 hiddenInput 值

Posted

技术标签:

【中文标题】Django Form - 渲染表单在模板中更改 hiddenInput 值【英文标题】:Django Form - Render Form changing hiddenInput Value in the template 【发布时间】:2014-07-12 12:59:04 【问题描述】:

在 forms.py 中定义 MyForm 并使用具有虚拟值的 HiddenInput 后​​,我​​想将我的数据库中的用户呈现为表单,并将用户名作为隐藏输入。

模板 Django:

% for username,time in llistat_usuaris.items %

 form.as_p  # HOW CAN I SET USERNAME as hidden value ??

% endfor %    

【问题讨论】:

初始化表单时为什么不给表单初始值? 您不应该在模板中执行此操作,而应使用表单执行此操作。在您的情况下,甚至 FormSet 也很有用。 @OdifYltsaeb 我认为这是个坏主意,因为我不知道我有多少用户以及我必须在视图中呈现多少表单 @toabi 你能举个例子吗? @user3584455 好吧,请参阅docs.djangoproject.com/en/1.6/topics/forms/formsets - 由于我不知道您到底想要实现什么以及您的数据是如何构建的,所以很难说什么是最好的。 【参考方案1】:

你在找这个吗?

 form.field.as_hidden 

".as_hidden" 这会使任何表单字段对用户不可见,但您在帖子中收到的字段与其他人一样

我一般创建一个和普通字段一样的字段,并且在模板中添加“as_hidden”,所以django不会在浏览器中显示这个字段。

我建议你检查这个帖子:

Hidden Field in Django model

Django forms hidden model field

Django ModelForm to have a hidden input

但是如果你想得到发帖用户的用户名,比这更简单,你只需要访问request.user

【讨论】:

我想要一种调用带有动态参数的视图的方法,参数是选择的用户名 您到底想要做什么?您可以通过不同的方式传递参数:发布、获取、请求、会话、中间件......我的问题是我不明白您到底想要做什么 你想要做的是改变模板中隐藏输入用户名的值?

以上是关于Django Form - 渲染表单在模板中更改 hiddenInput 值的主要内容,如果未能解决你的问题,请参考以下文章

Django 2.0 - 渲染错误的模板(没有错误)

使用更改 django 模板中表单字段的名称属性

Django在表单集中显示值文本

Django 模板根据条件渲染每个表单字段

使用模板渲染 django 小部件?

django表单提交后如何用弹框提示成功?