У меня есть модель с количеством в качестве целочисленного поля.и ModelForm в качестве TextInput
Используя Javascript, я смог отформатировать поле с разделителем тысяч (например, 100 000).
Теперь я пытаюсь очистить значение поля при отправке формы.так что это может быть сохранено как целое число (100000) в базе данных.Но я получаю ошибку проверки: Form.ValidationError: введите целое число
Что я пробовал до сих пор
models.py
amount = models.IntegerField(blank=False)
forms.py
class InvoiceCreateForm(forms.ModelForm):
class Meta:
model = ClientInvoice
fields = ['client', 'matter', 'desc', 'amount']
widgets = {
'client': forms.Select(
attrs={'class': 'form-control js-example-basic-select2', 'placeholder': '---------'}),
'matter': forms.Select(
attrs={'class': 'form-control js-example-basic-select2', 'placeholder': '----------',}),
'desc': forms.Textarea(
attrs={'class': 'form-control', 'placeholder': 'Remark', 'rows':'2'}),
'amount': forms.TextInput(
attrs={'class': 'form-control number', 'placeholder': 'Amount', 'id': 'numberInput'}),
}
def clean_amount(self):
data = self.cleaned_data['amount']
data = str(data)
data = data.replace(',', '')
data = int(data)
return data
и мой код Javascript
<script>
$('input.number').keyup(function(event) {
// skip for arrow keys
if(event.which >= 37 && event.which <= 40) return;
// format number
$(this).val(function(index, value) {
return value
.replace(/\D/g, "")
.replace(/\B(?=(\d{3})+(?!\d))/g, ",")
;
});
});
</script>