django跳过字段的验证

django跳过字段的验证,django,django-validation,Django,Django Validation,我需要跳过OrderAmount字段的验证,但它仍要保存无效数据。有没有办法做到这一点?我知道django允许您自己进行验证,但我不知道如何让它完全跳过一个字段的验证 型号: class LiquorOrder(models.Model): pack_size = ( ('1', '1'), ('2', '2'), ) LiquorOrderID = models.AutoField(pr

我需要跳过OrderAmount字段的验证,但它仍要保存无效数据。有没有办法做到这一点?我知道django允许您自己进行验证,但我不知道如何让它完全跳过一个字段的验证

型号:

class LiquorOrder(models.Model):

    pack_size = (
                ('1', '1'),
                ('2', '2'),
            )

    LiquorOrderID = models.AutoField(primary_key=True)
    storeliquorID = models.ForeignKey(StoreLiquor)
    orderID = models.ForeignKey(Order)
    OrderAmount = models.PositiveSmallIntegerField('Order Amount', max_length=3, choices=pack_size)
    TotalPrice = models.DecimalField('Total Price', max_digits=5, decimal_places=2)
表格:

class AddToOrderForm(forms.ModelForm):

    class Meta:
        model = LiquorOrder
        fields = ('OrderAmount',)
对于a,Django所做的唯一验证是确保该值确实是适当范围内的正整数。如果跳过此操作,当Django尝试将值写入数据库时,您会遇到问题。例如,如果您试图将值marshmallows写入一个需要整数的DB列,DB将抛出错误,Django将反过来抛出一个错误

如果您确实想尝试,您可以覆盖字段,将required设置为False,基本上允许任何键盘输入:

class AddToOrderForm(forms.ModelForm):
    OrderAmount = forms.CharField(required=False)
Django会在运行is_valid时返回True,但在尝试调用save时会抛出错误

听起来您真正的问题在于您的模型与当前的项目需求不匹配。如果是这样,请考虑迁移到新模型。Python库是用于此目的的优秀工具,Django社区大量使用它。我会仔细阅读数据库迁移,看看您是否能以这种方式提出解决方案