[파이썬][Django] 폼 생성 함수 사용 방법과 예제
Django에서 폼을 생성하는 함수를 사용하는 방법과 예제를 제공하겠습니다. 폼 생성 함수를 사용하면 Django 폼을 동적으로 생성하고 사용자 지정 로직을 쉽게 추가할 수 있습니다.
-
폼 클래스 생성
먼저, 폼을 정의하는 클래스를 생성합니다. 이 클래스는
forms.Form
또는forms.ModelForm
클래스를 상속해야 합니다. 예를 들어, 간단한 연락처 폼을 생성해보겠습니다.
# myapp/forms.py
from django import forms
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
message = forms.CharField(widget=forms.Textarea)
-
폼 생성 함수 작성
이제 폼 생성 함수를 작성합니다. 이 함수는 필요한 폼 인스턴스를 생성하고 필요한 로직을 추가할 수 있습니다. 예를 들어:
# myapp/utils.py
from myapp.forms import ContactForm
def create_contact_form(request):
if request.method == 'POST':
form = ContactForm(request.POST)
if form.is_valid():
# 폼이 유효한 경우 추가 로직 수행
# 예: 데이터 저장, 이메일 전송 등
else:
form = ContactForm()
return form
이 함수는 POST 요청으로 폼 데이터가 전송된 경우에는 제출된 데이터로 초기화된 폼을 반환하고, 그렇지 않은 경우 비어 있는 폼을 반환합니다.
-
폼 생성 함수 사용
뷰 함수에서 폼 생성 함수를 호출하여 폼 인스턴스를 생성하고 템플릿에 전달합니다.
# myapp/views.py
from myapp.utils import create_contact_form
from django.shortcuts import render
def contact_view(request):
form = create_contact_form(request)
return render(request, 'contact_template.html', {'form': form})
-
템플릿 작성
마지막으로, 템플릿에서 폼을 렌더링합니다.
<pre>
<code>
<!-- myapp/templates/contact_template.html -->
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Submit</button>
</form>
</code>
</pre>
이렇게 하면 폼이 템플릿에 렌더링되고, 사용자는 연락처 데이터를 입력하고 제출할 수 있습니다.
폼 생성 함수를 사용하면 Django 폼을 더 동적으로 다룰 수 있으며, 필요한 추가 로직을 쉽게 구현할 수 있습니다.