0
フォームの検証に問題があります。これは私のきれいな方法の一部である(forms.py - クラスSiteAddFormFull(forms.ModelForm)):管理パネルでのDjango管理フォームの検証
url = self.cleaned_data['url']
if self.check_url_in_database(url) is True:
errors.append('Url already exists')
if errors:
raise forms.ValidationError(errors)
return self.cleaned_data
これはcheck_url_in_database方法である:私は新しいオブジェクト(サイト)での作成
def check_url_in_database(self, url1):
if url1[7:10] == 'www':
url = 'http://' + url1[11:]
else:
url = url1.replace('http://', 'http://www.')
try:
Site.objects.get(url=url1)
return True
except ObjectDoesNotExist:
try:
Site.objects.get(url=url)
return True
except ObjectDoesNotExist:
return False
私のdjango管理者は正常に動作します(URLがデータベースに存在するかどうかを検証します)。既存のオブジェクトを修正しようとすると問題が発生します。同じエラー( 'Url already exists')がスローされます。新しいオブジェクトのみを検証する適切な方法は何ですか?
最初のif/else文で何をしようとしているのかはわかりません。 https://ではどのように動作するのか考えましたか? – Alasdair
はい。あなたは正しい - 私はhttpsを忘れていた。私はそれを訂正します。 – jundymek