ValidationError в Django - PullRequest
       2

ValidationError в Django

9 голосов
/ 19 декабря 2011

Привет, я очень новый в Джанго.Я работаю над небольшим проектом, в котором я использую модельформ.Для поля даты я хочу выполнить пользовательскую проверку, т. Е. Всякий раз, когда пользователь вводит дату до сегодняшней даты, он должен отображать сообщение об ошибке рядом с полем даты.Я написал код в соответствии с документацией Django, но он дает 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']

1 Ответ

12 голосов
/ 19 декабря 2011

Ваш метод проверки должен называться clean_due_date.И это должно повысить forms.ValidationError, а не core.exceptions.ValidationError.

Я понятия не имею, для чего нужны методы get_summary и get_description, они не вызываются и не делают ничего полезного.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...