我有一個包含一個整數字段Django表單輸出/錯誤檢查問題
class myModel(models.Model):
number = models.IntegerField()
每當我顯示或輸入數據到這個模式,我想在八進制這樣做的模型。當我填充我的編輯形式,我這樣做:
number = oct(numberObject.number).replace('Oo','')
當我去它正是我想要的,但,當我嘗試做錯誤提交表單後檢查,以避免這一數字預填充編輯表單發生兩次我得到一個問題,因爲數字是在self.changed_data,因此我得到的錯誤,這個數字已經存在(基本上它發現自己,並說它是重複的)
我想不出一種方式來圖我是否試圖將數字更改爲已存在的數字,或者如果我只是提交數字而不更改數字。
我的表單/驗證碼:
class NumberForm(ModelForm):
number = forms.CharField(max_length = 10)
def clean_number(self):
"""Ensures the new Number is unique
"""
enteredNumber = self.cleaned_data['number']
changedFields = self.changed_data
if number.objects.filter(number__exact = int(enteredNumber,8)):
if 'number' in changedFields:
raise forms.ValidationError("Error")
return int(enteredNumber,8)
class Meta:
model = Number
fields = '__all__'
我也嘗試刪除.replace('Oo','')但沒有幫助。 – user2788328
你能否包含你的表單和驗證碼? –
添加表單/驗證碼 – user2788328