django模型表单自定义字段

Chr*_*ris 4 python django django-models django-forms

我创建了一个包含一些类的模型:

class Student(models.Model):
    name = models.CharField(max_length=40)
    last_name = models.CharFIeld(max_length=40)
(...)
Run Code Online (Sandbox Code Playgroud)

在底部的相同models.py文件中我添加了一个对应于我的一个模型的类,所以我可以创建一个表单:

class StudentForm(ModelForm):
    class Meta:
        model = Student
Run Code Online (Sandbox Code Playgroud)

如何自定义通过ModelForm类创建的表单字段?我正在阅读django文档,我无法理解覆盖默认类型部分.例如,在文档中他们说这将起作用:

class ArticleForm(ModelForm):
    pub_date = DateField(label='Publication date')

    class Meta:
        model = Article
Run Code Online (Sandbox Code Playgroud)

但是当我输入我的价值观时,它不起作用.我无法定义我的标签:

class StudentForm(ModelForm):
    name = CharField(label='New label')

    class Meta:
        model = Student
Run Code Online (Sandbox Code Playgroud)

我是否必须创建一个类似forms.py的文件,其中包含与Model类相同的字段,然后自定义它们?是否可以仅使用模型表单更改单个字段css属性,如宽度,高度?

Pat*_*g J 5

表单的字段使用差异库来创建from.您需要导入django.forms并使用form.XXX特定字段

from django import forms


class StudentForm(ModelForm):
    class Meta:
        model = Student

    subject = forms.CharField(label='New label')
Run Code Online (Sandbox Code Playgroud)