[파이썬][Django] 폼 유효성 검사 및 오류 처리 방법과 예제
Django에서 폼 유효성 검사 및 오류 처리를 수행하는 방법과 예제를 설명하겠습니다. Django는 폼 데이터의 유효성을 검사하고 오류를 처리하는 강력한 기능을 제공합니다.
폼 유효성 검사
-
폼 클래스 생성:
먼저, 폼 클래스를 정의합니다. 필요한 필드를 정의하고 각 필드에 대한 유효성 검사 규칙을 설정합니다.
from django import forms
class MyForm(forms.Form):
name = forms.CharField(label='이름', max_length=100)
email = forms.EmailField(label='이메일')
age = forms.IntegerField(label='나이')
-
뷰에서 폼 처리:
폼 데이터를 뷰에서 처리할 때,
request.method
를 확인하여 POST 요청에서만 폼을 처리하고,form.is_valid()
를 사용하여 데이터의 유효성을 검사합니다.
from django.shortcuts import render
def my_view(request):
if request.method == 'POST':
form = MyForm(request.POST)
if form.is_valid():
# 유효한 데이터 처리
name = form.cleaned_data['name']
email = form.cleaned_data['email']
age = form.cleaned_data['age']
else:
# 유효하지 않은 데이터 처리 (오류 발생)
return render(request, 'my_template.html', {'form': form})
else:
form = MyForm()
return render(request, 'my_template.html', {'form': form})
오류 처리 및 템플릿 렌더링
-
템플릿에 오류 메시지 표시:
폼 유효성 검사에서 오류가 발생하면, 이러한 오류를 템플릿에 표시할 수 있습니다. 폼 필드의 오류 메시지는
form.field_name.errors
를 통해 접근할 수 있습니다.
<pre>
<code>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">제출</button>
</form>
{% if form.errors %}
<ul class="errorlist">
{% for field, errors in form.errors.items %}
<li>{{ field }}: {{ errors }}</li>
{% endfor %}
</ul>
{% endif %}
</code>
</pre>
위의 예제에서는 폼 오류가 발생하면 해당 오류를 목록으로 나열합니다.
예제
간단한 예제로, 이름 필드가 비어 있을 경우 오류를 표시하는 폼을 만들어 보겠습니다.
from django import forms
class MyForm(forms.Form):
name = forms.CharField(label='이름', max_length=100)
email = forms.EmailField(label='이메일')
age = forms.IntegerField(label='나이')
템플릿에서 오류를 표시하는 부분을 포함하여 폼을 사용하고 처리하는 예제를 살펴보겠습니다.
<pre>
<code>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">제출</button>
</form>
{% if form.errors %}
<ul class="errorlist">
{% for field, errors in form.errors.items %}
<li>{{ field }}: {{ errors }}</li>
{% endfor %}
</ul>
{% endif %}
</code>
</pre>
이렇게 하면 폼의 유효성 검사 및 오류 처리를 구현할 수 있습니다. Django는 폼 처리를 단순화하고 사용자에게 오류 메시지를 표시하는 데 편리한 방법을 제공합니다.