Это должно быть довольно просто, но я не пойму это из документации Django.У меня есть поле модели IntegerField, из которого я создал поле ModelForm.Данное поле содержит значения $ (цена), и с точки зрения UX было бы предпочтительнее, если бы пользователь не получал сообщение об ошибке («введите целое число»), когда вводил 10 вместо 10 *.пробовал ручную очистку формы, но кажется, что метод clean_field запускается после других методов проверки.Мое чтение до сих пор, кажется, подтверждает это также.
def clean_bill(self):
bill = self.cleaned_data["bill"]
if '$' in bill:
bill=bill.replace('$','',1)
return bill
Есть ли способ обойти это, поддерживая IntegerField в форме модели?Должен ли я просто сделать его RegexField?
РЕДАКТИРОВАТЬ: я закончил с комбинацией выше и RegexField.Все еще любопытно, есть ли другой / лучший способ.
bill= forms.RegexField(label=_("Bill"), max_length=10,required=True, regex=r'^\$?[\d]+$',
error_messages = {'invalid': _("Please enter a whole number.")})