Django:在带有前缀的模板中显示表单名称

Posted

技术标签:

【中文标题】Django:在带有前缀的模板中显示表单名称【英文标题】:Django: Display form name in template with prefix 【发布时间】:2013-08-10 00:40:52 【问题描述】:

我已经四处寻找这个问题的答案一段时间了,但没有成功。 我基本上想获取包含前缀的表单字段的名称。有谁知道怎么做?

例子:

假设我在 views.py 中创建了一个表单并包含这样的前缀:

myform = SomeForm(prefix="prefix")

然后将其传递给我的模板。如果我然后直接访问模板中的表单字段,我会通过 myform.username 得到类似的东西(注意包含前缀):

<select id="id_prefix-username" name="prefix-username"> ...

如果我想手动创建表单标签并插入名称,那么我不会得到前缀:

<input name=" myform.username.name ">

将生成:

<input name="username">

注意它现在是如何缺少前缀的。现在,我可以这样做以达到相同的结果:

 <input name=" myform.prefix - myform.username.name ">

但是必须有一个内置的方法来做到这一点?

【问题讨论】:

myform.prefix - myform.username.name 在我看来没问题。 为其创建自定义模板标签。 没有。没有内置的方法可以做到这一点。您必须像@dan-klasson 所说的那样编写自定义标签,或者像您所做的那样手动添加前缀。 【参考方案1】:

您可以使用 html_name 代替:

<input name=" myform.username.html_name ">

应该根据需要添加前缀

【讨论】:

以上是关于Django:在带有前缀的模板中显示表单名称的主要内容,如果未能解决你的问题,请参考以下文章

更改 django 在显示表单错误消息时使用的字段名称

已解决:如何在 Django 中的表单错误中重新显示带有选定值的表单集和 Select2 字段

使用 Form 标签在 Django 模板中获取模型的名称

Flask 视图显示 400 错误而不是带有表单的模板

Django 表单名称作为 HTML 模板中的属性

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