首页 > 解决方案 > 如何为表单中的多对多字段添加样式(Django)

问题描述

在此处输入图像描述我正在尝试在我的 Django 表单中添加样式。我知道如何在单个输入字段中添加样式,但在许多字段中,它显示的有点奇怪,我不喜欢。我试图在小部件属性中添加类,但它不起作用。

这是我的代码。

#model.py

class Professor(models.Model):
professor_id = models.AutoField(primary_key=True)
professor_name = models.CharField(max_length=200, null=True)
professor_course = models.ManyToManyField(Course)
working_hours = models.IntegerField(null=True)
def __str__(self):
    return self.professor_name

[#form.py

class CourseForm(forms.ModelForm):
    class Meta:
        model = Course
        fields = \['course_id', 'course_name', 'course_type', 'per_week_classes'\]

    course_name = forms.TextInput(attrs={'id': 'course_name', 'class': 'form-control'})
    course_type = forms.TextInput(attrs={'id': 'course_type', 'class': 'form-control'})
    per_week_classes = forms.NumberInput(attrs={'id': 'per_week_classes', 'class': 'form-control'})

class ProfessorForm(forms.ModelForm):

    class Meta:
        model = Professor
        fields = \['professor_name', 'professor_course', 'working_hours'\]][1]

这就是它现在的样子。我想为其添加搜索工具和样式。

标签: djangodjango-modelsdjango-formsdjango-viewsdjango-templates

解决方案


有一种使用python模块的简单方法,

pip install django-crispy-forms bootstrap4

在已安装的应用设置中添加“crispy_forms”

添加CRISPY_TEMPLATE_PACK = 'bootstrap4'设置。

在您的 html 页面中将其添加到顶部{% load crispy_forms_tags %}

在 csrf 令牌标记后添加您的表单,如下所示 {{ form|crispy }}


推荐阅读