У меня есть модель, которая содержит поле целогоДжанго Форма выхода/Проверка ошибок вопрос
class myModel(models.Model):
number = models.IntegerField()
Всякий раз, когда я показываю или входные данные для этой модели я хочу сделать это в восьмеричном. Когда я заполнить мою форму редактирования я делаю это:
number = oct(numberObject.number).replace('Oo','')
Когда я иду в форме редактирования это prepopulates именно то, что я хочу, но когда я пытаюсь сделать проверку ошибок после отправки формы, чтобы избежать этого числа происходит в два раза Я получаю проблему, потому что число находится в 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