[Django] 장고 Validator
Django Form에서 validator를 사용하는 방법을 forms.py와 validators.py 예시 코드를 통해 상세히 설명합니다.
1. forms.py
from django import forms
from .models import ExampleModel
from .validators import validate_category
class ExampleModelForm(forms.ModelForm):
class Meta:
fields = ['field1', 'field2']
model = ExampleModel
field1 = forms.CharField(
required = False,
widgets = forms.Textarea(attrs={
'id': 'field1',
'class': 'form-control'
}),
validators = [ validate_category ]
)
def clean_field2(self):
field2 = self.cleaned_data.get('field2')
if field2 == 'invalid':
raise forms.ValidatorError('Not a Valid Field2')
return field2
2. validators.py
from django.core.exceptions import ValidationError
CATEGORIZE = ['Mexican', 'Korean', 'Italian']
def validate_category(value):
cat = value.capitalized()
if value not in CATEGORIES and cat not in CATEGORIES:
raise ValidationError(f'{value} is not a valid category')
이것도 읽어보세요