Django Form 将类添加到 div、输入字段和标签

Posted

技术标签:

【中文标题】Django Form 将类添加到 div、输入字段和标签【英文标题】:Django Form add class to div, input field and label 【发布时间】:2021-06-21 07:05:00 【问题描述】:

这是为 ImageField 生成的 html django 表单

<div id="div_id_image" class="form-group"> 
    <label for="id_image" class=""> Image </label> 
    <div class=""> <input type="file" name="image" accept="image/*" class="clearablefileinput form-control-file" id="id_image"> 
</div>

现在,我可以编写自定义 html 代码来自定义此字段。但是,我的用例只是添加 3 个类,一个用于外部 div,一个用于标签,一个用于输入字段本身。 是否可以在不编写任何自定义 html 代码的情况下以 django 形式添加这 3 个类

【问题讨论】:

【参考方案1】:

这是可能的。使用“django-widget-tweaks”工具。它将为您的表单提供充分的灵活性。

查看官方文档:

https://pypi.org/project/django-widget-tweaks/

如果你只想从 form.py 添加类名 (你可以试试这个,但代码没有经过测试)

from django import forms

class xyzform(forms.ModelForm):
    x= forms.CharField(widget= forms.TextInput
                           (attrs='class':'some_class',
                   'id':'some_id'))
    y= forms.CharField(widget= forms.TextInput
                           (attrs='class':'some_class',
                   'id':'some_id'))
    class Meta:
        model = xyzModal
        fields = [
        'x',
        'y'
        ]

【讨论】:

文档似乎指向在 html 部分修改它。我正在寻找一种在 forms.py 文件中而不是在 form.html 文件中修改它的方法。 检查更新。你可以试试这个,但代码没有经过测试。 但这只会在输入字段上添加类...在标签或 div 标签上没有

以上是关于Django Form 将类添加到 div、输入字段和标签的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以将类添加到 bootstrap_django form_fields?

Django 将类添加到表单 <input ..> 字段

Django小部件 - 将类添加到字段

Symfony twig 如何将类添加到表单行

每次点击将类添加到单个 div

将类添加到菜单类到 wp_nav_menu 将类添加到 div 而不是 ul