Как проверить на валидность поля в ModelForm?
class ProductForm(forms.ModelForm):
class Meta:
model = OrderProductLine
exclude = ['Confirmation', 'OrderID', 'NumProduct']
в модельке есть поле Num, она не может быть отрицательной и пустой.
Проверку я делаю следующим образом: ввожу новое поле в class ProductForm(forms.ModelForm) затем во вьюшки присваию значение этого поля в Num.
т.е. я делаю:
class ProductForm(forms.ModelForm):
NumProduct = forms.IntegerField()
class Meta:
model = OrderProductLine
exclude = ['Confirmation', 'OrderID', 'NumProduct']
def clean(self):
data = self.cleaned_data
if (data['NumProduct'] <= 0 or data['NumProduct'] == ""):
raise forms.ValidationError("Please enter num product")
return data
и во вьюшке:
todo_item = form.save(commit=False)
todo_item.NumProduct = form.cleaned_data['NumProduct']
проверка на не отрицательность работает, а вот когда поле не заполнено выдает ошибку: KeyError, как можно исправить?
даже валидность на не отрицательное число можно убрать если добавить:
NumProduct = forms.IntegerField(min_value=1, error_messages={'required': 'Please input num product'})
Updated 2 Dec. 2015, 18:35 by diga.