使用django进行模型表单验证

使用django进行模型表单验证,django,validation,django-forms,Django,Validation,Django Forms,我用的是模型表格。我也试着这么做,但我没有得到答案。我不确定我写的表单验证方法是否正确 forms.py class BookForm(ModelForm): class Meta: model = Book fields=['book_id', 'book_name', 'author_name','publisher_name'] def clean_book_name(self): book_name = self.clea

我用的是模型表格。我也试着这么做,但我没有得到答案。我不确定我写的表单验证方法是否正确

forms.py

class BookForm(ModelForm):
    class Meta:
        model = Book
        fields=['book_id', 'book_name', 'author_name','publisher_name']

    def clean_book_name(self):
        book_name = self.cleaned_data['book_name']
        if book_name is None:
            raise ValidationError('field mandatory')
        return book_name

    def clean_author_name(self):
        author_name=self.cleaned_data['author_name']
        num_words = len(author_name.split())
        if num_words < 4:
            raise forms.ValidationError("Not enough words!")
        return author_name
类图书格式(ModelForm):
类元:
模型=书
字段=[“图书id”、“图书名”、“作者名”、“出版商名”]
def清洁手册名称(自身):
book\u name=self.cleaned\u数据['book\u name']
如果书籍名称为“无”:
raise ValidationError('字段必填')
还书单位名称
def clean_作者姓名(自我):
author\u name=self.cleaned\u数据['author\u name']
num\u words=len(author\u name.split())
如果num_单词数<4:
raise forms.ValidationError(“单词不够!”)
返回作者姓名
我使用的是ModelForm。我没有在views.py中为此验证编写任何内容

模板

<div align="center">

    <form action="/addbook/" method="POST"> {% csrf_token %}

        <div class="field">
            {{ form.book_name.errors }}
            <label for="id_book_name">Book Name:</label>
            {{ form.book_name }}
        </div>
        <div class="field">
            {{ form.author_name.errors }}
            <label for="id_email">Author name:</label>
            {{ form.author_name }}
        </div>
        <div class="field">
            {{ form.publisher_name.errors }}
            <label for="id_message">Publisher Name:</label>
            {{ form.publisher_name }}
        </div>

{%csrf_令牌%}
{{form.book_name.errors}
书名:
{{form.book_name}
{{form.author\u name.errors}
作者姓名:
{{form.author_name}
{{form.publisher_name.errors}
出版商名称:
{{form.publisher_name}
有人能帮我解决这个问题吗?请给我一个想法,如果我的代码中有任何错误,请通知我


谢谢

我应该在views.py
data=form.cleaned\u data
def clean_book_name(self):
    book_name = self.cleaned_data['book_name']
    if not book_name:
        raise forms.ValidationError('field mandatory')
    return book_name