Привет Я очень новичок в Django. Я работаю над небольшим проектом, в котором я использую modelform. В поле даты я хочу выполнить выборочную проверку, т. Е. Всякий раз, когда пользователь вводит дату до сегодняшней даты, он должен отображать сообщение об ошибке рядом с полем даты. Я написал код в соответствии с документацией django, но он дает ValidationErrors для выражения raise в modelform. например ValidationError at/add_task/ [u "Пожалуйста, введите действительную дату. Либо сегодня, либо после этого."]ValidationError in Django
Пожалуйста, помогите мне, как преодолеть эту проблему. Заранее спасибо.
коды моих моделей:
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
коды моего ModelForm: необходим
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']
Привет, Daniel, get_summary и методы get_description просто возвращают очищенные данные в представление и ничего не делают. Спасибо, теперь это работает. –
@ Daniel Roseman «он должен поднять формы. ValidationError, not core.exceptions.ValidationError« Вы можете найти в 'django/forms/__ init __. Py', что' ValidationError' - это 'core.exceptions', он просто реимпортируется' из django. core.exceptions import ValidationError' – bns