【问题标题】:Django forms: How to add class to field_content?Django 表单:如何向 field_content 添加类?
【发布时间】:2012-08-04 13:05:15
【问题描述】:

当我渲染一个表单时,它会为每个字段生成类似这样的内容:

<div class="field_content">
    <label>...</label>
    <div class="field">...</class>
</div>

我希望能够在我的样式表中唯一标识每个字段。有没有办法向外部 div(除了 field_content)或外部 div(field_content 的父级)添加另一个类?

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    如果设置字段的类就够了,可以指定为an attribute of your widget

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

    如果您需要更多控制权,最好是render your form manually,或者如果您不介意依赖外部应用,还有更灵活的解决方案:

    django-floppyforms 中,您可以使用form layouts,在django-crispy-forms 中,您可以使用layout objects 来实现您想要的。

    【讨论】:

    • django-floppyforms (django-floppyforms.readthedocs.org/en/latest/index.html) 是一个替代包,可让您完全控制表单的呈现方式。我提到它是因为它正在被集成到 Django 核心中,所以很快,这就是 Django 表单的完成方式。
    • 啊,对。 @Chris,您是否有一个链接可以找到有关将 floppyforms 集成到 Django 中的更多信息?到目前为止,我更喜欢crispy-forms,因为它可以很好地与 Twitter Bootstrap 集成,尽管我真的很喜欢将更灵活的表单库作为 Django 核心的一部分的想法。
    • floppyforms 使您能够自定义表单生成的各个方面,因此使其与任何 CSS 框架一起工作都是微不足道的。由于它确实使用模板,因此您可以随意制作。
    • 这会将标签添加到输入控件,而不是外部 div。
    • 我更新了我的答案以使其更加明显。所以是的,如果你真的需要外部 div 上的类,你可能应该手动呈现表单或使用表单应用程序之一。 @Chris 我仔细查看了 floppyforms,它看起来确实非常好。我发现this comment 非常有助于掌握松脆形式和软盘形式之间的一般(设计)差异。
    猜你喜欢
    • 2014-07-06
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2012-07-11
    • 2020-01-10
    • 2022-01-05
    • 2018-03-16
    • 2017-04-12
    相关资源
    最近更新 更多