from django import forms
from .model import Blog
์ด๋ค model
์ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฒ์ธ์ง
์ด๋ค ๋ฐ์ดํฐ๋ฅผ ์
๋ ฅ๋ฐ์ ๊ฒ ์ธ์ง Meta
ํด๋์ค์ ์ ์
class BlogPost(forms.ModelForm):
class Meta:
model = Blog
fields = [
'title',
'body',
]
urlpatterns = [
path('<int:blog_id>/', views.detail, name="detail"),
path('new/', views.new, name="new"),
path('create/', views.create, name="create"),
path('search/', views.search, name="search"),
path('newblog/', views.blogpost, name="newblog"),
]
forms.py
์ ์์ฑํ ํด๋์ค ์ถ๊ฐ
from .forms import BlogPost
์ฒ๋ฆฌํจ์ ์์ฑ
def blogpost(request):
# ์
๋ ฅ๋ ๋ด์ฉ์ ์ฒ๋ฆฌ -> POST
if request.method == 'POST':
form = BlogPost(request.POST)
if form.is_valid():
post = form.save(commit=False)
post.pub_date = timezone.now()
form.save()
return redirect('home')
# ๋น ํ์ด์ง ์ถ๋ ฅ -> GET
else:
form = BlogPost()
return render(request, 'new.html', {
'form': form,
})
request
๋ฐฉ์์ด POST์ผ ๊ฒฝ์ฐ form
์ ์
๋ ฅ๋ ๋ฐ์ดํฐ๋ฅผ
์ฒ๋ฆฌํด์ผ ํ๊ธฐ ๋๋ฌธ์ POST๋ฐฉ์์ผ๋ก ์
๋ ฅ๋ ๋ด์ฉ์ ๋ณ์์ ๋ด๊ณ
is_valid
ํจ์๋ฅผ ์ด์ฉํด ๋ด์ฉ์ด ์ ์
๋ ฅ๋์ด์๋์ง ๊ฒ์ฌํ ํ
์
๋ ฅ๋์ง ์์ ๋๋จธ์ง ๊ฐ๋ค์ ์์๋ก ์
๋ ฅํด ์ค ํ ์ ์ฅ
request
๋ฐฉ์์ด GET์ผ ๊ฒฝ์ฐ ๋น ํ์ด์ง ์ถ๋ ฅ
as_table
ํ
ํ๋ฆฟ ๋ฉ์๋ ์ฌ์ฉ
table
ํ์์ผ๋ก ๊ฐ์ธ์ form
์ฌ์ฉ
<form method="POST">
{% csrf_token %}
<table>
{{ form.as_table }}
</table>
<br>
<input type="submit" value="์ ์ถํ๊ธฐ" class="btn btn-dark">
</form>
class BlogPost(forms.Form):
email = forms.EmailField()
files = forms.FileField()
url = forms.URLField()
words = forms.CharField(max_length=200)
max_number = forms.ChoiceField(choices=[
('1','one'),
('2','two'),
('3', 'three'),
])