【问题标题】:Django: Get the form name or id from templateDjango:从模板中获取表单名称或 ID
【发布时间】:2017-03-22 12:02:14
【问题描述】:

如果你有多个表格

from django import forms

class NameForm(forms.Form):
    your_name = forms.CharField(label='Your name', max_length=100)

class SecondNameForm(forms.Form):
    your_name = forms.CharField(label='Your name', max_length=100)

有没有一种方法可以在您的模板中确定context 内部的form 是否属于NameFormSecondNameForm

我有一个自定义小部件,在其 html 中,它使用 id="" 标识符(在整个 html 中应该是唯一的)。

我想将 id 分配给类似的东西

id="{{form.name}}_{{field.val}}"id="{{form.id}}_{{field.val}}"

其中{{form.name}}{{form.id}} 是与表单实例相关联的某个值,而不是与表单内容相关联的值。

【问题讨论】:

    标签: django django-forms django-templates


    【解决方案1】:

    在您看来,您可以执行 form.__class__.__name__ 但这在模板中不起作用,因为 django 模板无法识别以 __ 开头的变量

    在您的情况下,最好的办法是简单地创建一个额外的上下文变量来标识表单名称

    id="{{form_name}}_{{field.val}}"
    

    【讨论】:

      【解决方案2】:

      如果您为每个表单使用唯一的prefix,则这些字段都将具有唯一的 ID。

      form1 = NameForm(prefix='name') 
      form2 = SecondNameForm(prefix='second_name') 
      

      【讨论】:

        【解决方案3】:

        如果您正在使用表单,则可以从模板中获取 id

        {{ form.instance.pk ]}

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-19
          • 2012-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-08-21
          • 2011-09-01
          • 2017-02-27
          相关资源
          最近更新 更多