Ich versuche zu überprüfen, ob eine eingegebene URL nicht bereits in der Datenbank vorhanden ist.
Die relevanten Teile der Klasse Form sehen wie folgt aus:
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
Das Problem ist, dass ich unabhängig davon, welchen Wert ich eingebe, den Wert nicht erhöhen kann. ValidationError
. Und wenn ich so etwas in der clean_url()
Methode:
if Site.objects.get(domain=url):
raise forms.ValidationError("That URL is already in the database. Please submit a unique URL.")
dann erhalte ich eine DoesNotExist
Fehler, auch für URLs, die bereits in der Datenbank vorhanden sind. Irgendwelche Ideen?