django with form - pai-plznw4me/django-initializer GitHub Wiki
form μ΄λ html page μμ μλ²λ‘ μ 보λ€μ μλ‘ κ΅νν λ μλ‘ μ½μ ν ννλ‘ λ°μ΄ν°λ‘ μ 곡νλ κ²μ μλ―Ένλ€.
μ¬μ© ν¨ν΄μ ν¬κ² 2κ°μ§κ° μλλ°
- 첫λ²μ§Έλ modelμ μ μ₯λμ΄ μλ μ 보λ€μ html page μ 보μ¬μ£Όλ κ²μ΄λ€.
- λλ²μ§Έλ html page μ μ λ ₯λ form μ 보λ€μ db μ μ μ₯νλ κ²μ΄λ€.
μλ 3κ°μ§ μμλ‘ μ§ννλ€.
- forms.py(app level) μ form λ±λ‘νκΈ°
- views.py(app level) μμ μμ±ν form μ¬μ© νκΈ°
- html page μμ form μ λ°μ rendering ν μ μλλ‘ νκΈ°
μλμ κ°μ skeleton μ½λλ₯Ό μ¬μ©ν©λλ€.
class {λͺ¨λΈμ΄λ¦}Form(forms.ModelForm):
class Meta:
model = λͺ¨λΈν΄λμ€
fields = ['μ¬μ©ν μμ± 1', 'μ¬μ©ν μμ± 2']example)
from django import forms
from pybo.models import Question
class QuestionForm(forms.ModelForm):
class Meta:
model = Question # μ¬μ©ν λͺ¨λΈ
fields = ['subject', 'content'] # QuestionFormμμ μ¬μ©ν Question λͺ¨λΈμ μμ±from .forms import λͺ¨λΈμ΄λ¦Form
def λͺ¨λΈμ΄λ¦_κΈ°λ₯(request):
form = λͺ¨λΈμ΄λ¦Form()
return render(request, λλλ url, {'form': form})def setting(request):
form = TrainConfigForm()
context = {'form': form}
return render(request, 'train_classifier/setting.html', context)<form method="post" action="url">
{{ form.as_p }}
<button type="submit">μ μ₯νκΈ°</button>
</form>쑰건μ λ°λΌ form μ 보λ΄λ url μ΄ λ¬λΌμ§λ κ²½μ°μλ μλμ κ°μ΄ form tag μ action tag μ μ§μ νμ§ μλλ€.
<form method="post">
{{ form.as_p }}
<button type="submit">μ μ₯νκΈ°</button>
</form><form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">μ μ₯νκΈ°</button>
</form> if request.method == 'POST':
form = TrainConfigForm(request.POST)
if form.is_valid():
config = form.save(commit=False) # μ€μ μ μ₯μ΄ μλλΌ λ²νΌμ μ μ₯νλ μ½λ
config.train_date = timezone.now()
config.save() # μ€μ DBμ μ μ₯
return render(request, 'train_classifier/index.html')
else:
return render(request, 'train_classifier/index.html')