【问题标题】:model form validation using django使用 django 进行模型表单验证
【发布时间】:2013-03-16 13:18:01
【问题描述】:

我正在使用模型表单。我试图做同样的事情,但我没有得到答案。我不确定我写的表单验证方法是否正确。

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。我没有在 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>

谁能帮我解决这个问题?请给我一个想法,或者如果我的代码中有任何错误,请通知。

谢谢

【问题讨论】:

    标签: django validation django-forms


    【解决方案1】:
    def clean_book_name(self):
        book_name = self.cleaned_data['book_name']
        if not book_name:
            raise forms.ValidationError('field mandatory')
        return book_name
    

    【讨论】:

    • 我应该在views.py中为此编写任何逻辑
    • data = form.cleaned_data
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 2019-01-26
    • 2021-10-13
    相关资源
    最近更新 更多