ModelForm ์ ์ธํ๊ธฐ
from django import forms
from .models import Article
class ArticleForm(forms.ModelForm):
class Meta:
model = Article
fields = '__all__'
๐forms ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ํ์๋ ModelForm ํด๋์ค๋ฅผ ์์ ๋ฐ์
๐ณ์ ์ํ ํด๋์ค ์์ Meta ํด๋์ค๋ฅผ ์ ์ธํ๊ณ , ์ด๋ค ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก form์ ์์ฑํ ๊ฒ์ธ์ง์ ๋ํ ์ ๋ณด๋ฅผ Metaํด๋์ค์ ์ง์
Widgets ์ ์ฉํ๊ธฐ
class ArticleForm(forms.ModelForm):
title = forms.CharField(
label = '์ ๋ชฉ',
widget=forms.TextInput(
attrs={
'class': 'my-site',
'placeholder': 'Enter the title',
}
)
)
class Meta:
model = Article
fields = '__all__'
create view ํจ์ ๊ตฌ์กฐ ๋ณ๊ฒฝ
def create(request):
if request.method == 'POST':
form = ArticleForm(request.POST)
if form.is_valid():
article = form.save()
return redirect('articles:detail', article.pk)
else:
form = ArticleForm()
context = {
'form': form,
}
return render(request, 'articles/create.html', context)
update view ํจ์ ๊ตฌ์กฐ ๋ณ๊ฒฝ
@require_http_methods(['GET', 'POST'])
def update(request, pk):
# article = Article.objects.get(pk=pk)
article = get_object_or_404(Article, pk=pk)
# update
if request.method == 'POST':
form = ArticleForm(request.POST, instance=article)
if form.is_valid():
form.save()
return redirect('articles:detail', article.pk)
# edit
else:
form = ArticleForm(instance=article)
context = {
'article': article,
'form': form,
}
return render(request, 'articles/update.html', context)