DjangoでのValidationError

こんにちは私はDjangoで非常に新しいです。私はmodelformを使っている小さなプロジェクトに取り組んでいます。 日付フィールドの場合、私はカスタム検証を行います。つまり、今日の日付より前に日付を入力すると、日付フィールドの近くにエラーメッセージが表示されます。私はdjangoのドキュメントに従ってコードを書いていますが、modelformのraise文に対してValidationErrorsを与えています。好きな ValidationError at/add_task / [u "有効な日付を入力してください。今日の日付またはそれ以降の日付です。"]

この問題を解決する方法を教えてください。前もって感謝します。

モデルのコード:

from django.db import models

class MyTask(models.Model):

    summary=models.CharField(max_length=100)

    description=models.CharField(max_length=500)

    due_date=models.DateField(null=True)

    completed_status=models.BooleanField()

    def __unicode__(self):
        return self.summary

モデルフォームのコード:

from django.forms import ModelForm, Textarea

from django.forms.extras.widgets import SelectDateWidget

from django.core.exceptions import ValidationError

from assignment.models import MyTask

import datetime

class AddTaskForm(ModelForm):

    class Meta:

        model=MyTask

        fields=('summary','description','due_date')

        widgets = {
            'description': Textarea(attrs={'cols': 50, 'rows': 10}),
            'due_date':SelectDateWidget(),
        }

    def get_due_date(self):

        diff=self.cleaned_data['due_date']-datetime.date.today()

        if diff.days<0:

            raise ValidationError("Please enter valid date. Either today's date or after that.")

    else:

            return self.cleaned_data['due_date']    

    def get_summary(self):

            return self.cleaned_data['summary']

    def get_description(self):

            return self.cleaned_data['description']
5

1 答え

検証方法は clean_due_date と呼ばれる必要があります。また、 core.exceptions.ValidationError ではなく forms.ValidationError を生成する必要があります。

私は、 get_summary メソッドと get_description メソッドが何であるか分からず、呼び出されず何も役に立ちません。

10
追加された
こんにちはダニエル、get_summaryとget_descriptionメソッドは、単にビューに清掃されたデータを返し、何もしません。ありがとう、今は動作します。
追加された 著者 Ravi Kant,
@Daniel Roseman "form.ValidationError、core.exceptions.ValidationErrorではありません" ValidationError のコードである django/forms/__ init __。py core.exceptions django.core.exceptionsから再インポートされたばかりです import ValidationError
追加された 著者 bns,