子类化 DecimalField
Subclassing DecimalField
我正在尝试创建一个 DecimalField
子类,使用下面的代码
class PositiveMoneyField(DecimalField):
def __init__(self, verbose_name=None, name=None, **kwargs):
super().__init__(self,
verbose_name, name,
max_digits=9, decimal_places=2,
validators=[MinValueValidator(Decimal(0.0)), ],
**kwargs
)
但是它给我这个错误:
TypeError: __init__() got multiple values for argument 'max_digits'
感谢任何帮助。
谢谢,
埃里克
似乎 DecimalField 中的 init 需要不同的调用。试试这个:
class PositiveMoneyField(DecimalField):
def __init__(self, verbose_name=None, name=None, **kwargs):
kwargs.update(
{'validators': [MinValueValidator(Decimal(0.0)), ]})
super(PositiveMoneyField, self).__init__(verbose_name, name, max_digits=3, decimal_places=2, **kwargs)
在检查其他django字段为SlugField后,我找到了解决方案:
class PositiveMoneyField(DecimalField):
def __init__(self, *args, max_digits=9, decimal_places=2, **kwargs):
kwargs.update({'validators': [MinValueValidator(Decimal(0.01)), ]})
super().__init__(*args, max_digits=max_digits, decimal_places=decimal_places, **kwargs)
我正在尝试创建一个 DecimalField
子类,使用下面的代码
class PositiveMoneyField(DecimalField):
def __init__(self, verbose_name=None, name=None, **kwargs):
super().__init__(self,
verbose_name, name,
max_digits=9, decimal_places=2,
validators=[MinValueValidator(Decimal(0.0)), ],
**kwargs
)
但是它给我这个错误:
TypeError: __init__() got multiple values for argument 'max_digits'
感谢任何帮助。
谢谢,
埃里克
似乎 DecimalField 中的 init 需要不同的调用。试试这个:
class PositiveMoneyField(DecimalField):
def __init__(self, verbose_name=None, name=None, **kwargs):
kwargs.update(
{'validators': [MinValueValidator(Decimal(0.0)), ]})
super(PositiveMoneyField, self).__init__(verbose_name, name, max_digits=3, decimal_places=2, **kwargs)
在检查其他django字段为SlugField后,我找到了解决方案:
class PositiveMoneyField(DecimalField):
def __init__(self, *args, max_digits=9, decimal_places=2, **kwargs):
kwargs.update({'validators': [MinValueValidator(Decimal(0.01)), ]})
super().__init__(*args, max_digits=max_digits, decimal_places=decimal_places, **kwargs)