Я создаю приложение django, которое требует ввода некоторых валют. Я пытаюсь упростить ввод валют и проверку ввода действительных валют, а не просто десятичных значений.
В моем виде поле отображается нормально, но там есть некоторые трудности с принятием допустимых значений. Вот мои полевые ошибки.
Запутано - Если max_digits=10
как это возможно?
entered: 50000.00 error: Ensure that there are no more than 5 digits in total.
Значение вне диапазона - как это выходит за пределы диапазона?
entered: 50000 error: Out of range value for column 'amount' at row 1
Есть идеи, что здесь происходит?
-------- fields.py -------
class CurrencyField(models.DecimalField):
__metaclass__ = models.SubfieldBase
def to_python(self, value):
try:
return super(CurrencyField, self).to_python(value).quantize(Decimal("0.01"))
except AttributeError:
return None
-------- model.py ---------
class Purchase(models.Model):
customer = models.ForeignKey(Customer, unique=False, editable=False)
dtgPurchase = models.DateField('Date Purchased')
amount = CurrencyField(max_digits=10, decimal_places=2, blank=True)
-------- forms.py ---------
class PurchaseForm(forms.ModelForm):
class Meta:
model = Purchase
fields = ('dtgPurchase', 'amount',)