2015-11-02 15 views
2

在models.py:力PositiveInterField在ModelFormSet不有效的,如果空

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

的看法是從ModelFormSetView(Django的額外查看)繼承了一個簡單的類。

問題:即使沒有在每個formset形式中輸入數量,按下輸入按鈕時仍然驗證formset。沒有數據存儲在數據庫中(良好),但是我想要在沒有數量輸入時顯示錯誤消息。 也試過:

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

沒有成功... 任何幫助表示歡迎。

+0

作爲評論,當我說formset被驗證=「success_url」顯示 –

回答

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/

+0

不起作用。還試過'def clean_quantity(self):raise ValidationError(u「請輸入數量」)'。就像它沒有被評估 –

+0

好吧,這是一個Django和ModelFormSet中的錯誤,如描述(https://github.com/AndrewIngram/django-extra-views/issues/68)和(https://code.djangoproject.com/門票/ 24541) –