如果为null,则强制ModelFormSet中的PositiveInterField无效

时间:2015-11-02 15:51:01

标签: django django-forms

在models.py中:

quantity = models.PositiveIntegerField(blank=False, null=False)

视图是一个继承自ModelFormSetView(Django Extra Views)的简单类。

问题:即使没有在每种形式的表单集中输入数量,也会在按下输入按钮时验证表单集。没有数据存储在数据库中(好)但是如果没有输入数量,我想要显示一条错误消息。 还尝试过:

from django.core.validators import MinValueValidator, MinLengthValidator
...    
quantite = models.PositiveIntegerField(blank=False, null=False, validators=[MinValueValidator(0), MinLengthValidator(1)])

没有成功...... 欢迎任何帮助。

1 个答案:

答案 0 :(得分:0)

您可以在表单中使用clean_quantity。未经测试的代码:

def clean_quantity(self):
    quantity = self.cleaned_data["quantity"]
    if not quantity or len(quantity) == 0:
        raise ValidationError(u"Please enter a quantity")

请参阅https://docs.djangoproject.com/en/1.8/ref/forms/validation/