[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')

 


이것도 읽어보세요