Я пытаюсь проверить, что представленный URL-адрес еще не существует в базе данных.Проблемы с повышением ValidationError в форме Django
Соответствующие части формы класса выглядят следующим образом:
from django.contrib.sites.models import Site
class SignUpForm(forms.Form):
# ... Other fields ...
url = forms.URLField(label='URL for new site, eg: example.com')
def clean_url(self):
url = self.cleaned_data['url']
try:
a = Site.objects.get(domain=url)
except Site.DoesNotExist:
return url
else:
raise forms.ValidationError("That URL is already in the database. Please submit a unique URL.")
def clean(self):
# Other form cleaning stuff. I don't *think* this is causing the grief
Проблема заключается в том, независимо от того, какое значение я представляю, я не могу поднять ValidationError
. И если я что-то вроде этого в методе clean_url()
:
if Site.objects.get(domain=url):
raise forms.ValidationError("That URL is already in the database. Please submit a unique URL.")
тогда я получаю ошибку DoesNotExist
, даже для URL-адресов, которые уже существуют в базе данных. Есть идеи?
ничего хорошего - ошибка не получает возникает, когда он должен. – saturdayplace 2008-12-04 04:04:08
У вас тогда есть другие проблемы. Это должно сработать. Вы запускаете «manage.py testserver» и получаете новую, пустую базу данных при каждом запуске? Вы используете «manage.py runningerver»? – 2008-12-04 11:11:50