【问题标题】:Add class to specific fields in django forms将类添加到 django 表单中的特定字段
【发布时间】:2011-08-29 11:05:51
【问题描述】:

我正在使用

呈现我的表单
{{ form.as_p }}

在我的模板中。

但是我想让一些“p”添加一些类(不是全部),所以我可以在我的字段之间进行某种分组,这要归功于 css。

你会怎么做?

谢谢!

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    如果您想要任何超出 Django 为您提供的as_p 之外的东西,您应该自己指定字段。您将获得更多控制权,而无需四处乱窜。像display_field 这样的简单模板标签将允许您使用单个标签指定每个字段、其标签和错误。然后,您可以使用相应的 HTML 元素自己对字段进行分组:字段集。

    <fieldset class="my_fieldset">
        {% display_field form.field1 %}
        {% display_field form.field2 %}
    </fieldset>
    

    【讨论】:

      【解决方案2】:

      指定小部件并使用您需要的类对其进行初始化。像这样:

      name = forms.CharField(widget=forms.TextInput(attrs={'class':'special'}))
      

      Django 文档在这里:http://docs.djangoproject.com/en/1.3/ref/forms/widgets/#django.forms.Widget.attrs

      编辑:
      表单最好使用字段集进行结构化。不幸的是,django 目前不“支持”它们。当前状态最好总结在这里:Django and fieldsets on ModelForm

      【讨论】:

      • 这个解决方案的问题是类in只应用于“input”标签,而不是“p”标签
      【解决方案3】:

      创建自定义模板标签以根据需要呈现表单。

      【讨论】:

        【解决方案4】:

        检查这个问题以获得一些想法:Django Forms Template design classes

        您可以将建议的方法与:nth-child-selector 结合起来以匹配您想要的段落。

        根据您表单的复杂程度,我会考虑使用render the form manually

        【讨论】:

          猜你喜欢
          • 2011-07-14
          • 2015-06-25
          • 2012-02-17
          • 2022-01-09
          • 1970-01-01
          • 2015-02-14
          • 1970-01-01
          • 1970-01-01
          • 2021-03-05
          相关资源
          最近更新 更多