Skip to content

Commit 4a7577b

Browse files
28 - Django Model Form for Article Model
1 parent f83514d commit 4a7577b

File tree

2 files changed

+41
-12
lines changed

2 files changed

+41
-12
lines changed

articles/forms.py

+18-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,23 @@
11
from django import forms
22

3-
class ArticleForm(forms.Form):
3+
from .models import Article
4+
5+
class ArticleForm(forms.ModelForm):
6+
class Meta:
7+
model = Article
8+
fields = ['title', 'content']
9+
10+
def clean(self):
11+
data = self.cleaned_data
12+
title = data.get("title")
13+
qs = Article.objects.filter(title__icontains=title)
14+
if qs.exists():
15+
self.add_error("title", f"\"{title}\" is already in use. Please pick another title.")
16+
return data
17+
18+
19+
20+
class ArticleFormOld(forms.Form):
421
title = forms.CharField()
522
content = forms.CharField()
623

articles/views.py

+23-11
Original file line numberDiff line numberDiff line change
@@ -24,22 +24,34 @@ def article_search_view(request):
2424

2525
@login_required
2626
def article_create_view(request):
27-
# print(request.POST)
28-
form = ArticleForm()
27+
form = ArticleForm(request.POST or None)
2928
context = {
3029
"form": form
3130
}
32-
if request.method == "POST":
33-
form = ArticleForm(request.POST)
34-
context['form'] = form
35-
if form.is_valid():
36-
title = form.cleaned_data.get("title")
37-
content = form.cleaned_data.get("content")
38-
article_object = Article.objects.create(title=title, content=content)
39-
context['object'] = article_object
40-
context['created'] = True
31+
if form.is_valid():
32+
article_object = form.save()
33+
context['form'] = ArticleForm()
34+
# context['object'] = article_object
35+
# context['created'] = True
4136
return render(request, "articles/create.html", context=context)
4237

38+
# def article_create_view(request):
39+
# # print(request.POST)
40+
# form = ArticleForm()
41+
# context = {
42+
# "form": form
43+
# }
44+
# if request.method == "POST":
45+
# form = ArticleForm(request.POST)
46+
# context['form'] = form
47+
# if form.is_valid():
48+
# title = form.cleaned_data.get("title")
49+
# content = form.cleaned_data.get("content")
50+
# article_object = Article.objects.create(title=title, content=content)
51+
# context['object'] = article_object
52+
# context['created'] = True
53+
# return render(request, "articles/create.html", context=context)
54+
4355
def article_detail_view(request, id=None):
4456
article_obj = None
4557
if id is not None:

0 commit comments

Comments
 (0)