Skip to content

Commit 8ae8693

Browse files
committed
3c. Blog App: Views
1 parent 86c5009 commit 8ae8693

File tree

4 files changed

+62
-2
lines changed

4 files changed

+62
-2
lines changed

rp-portfolio/blog/forms.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
from django import forms
2+
3+
4+
class CommentForm(forms.Form):
5+
author = forms.CharField(
6+
max_length=60,
7+
widget=forms.TextInput(attrs={
8+
"class": "form-control",
9+
"placeholder": "Your Name"
10+
})
11+
)
12+
body = forms.CharField(widget=forms.Textarea(
13+
attrs={
14+
"class": "form-control",
15+
"placeholder": "Leave a comment!"
16+
})
17+
)

rp-portfolio/blog/urls.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from django.urls import path
2+
from . import views
3+
4+
urlpatterns = [
5+
path("", views.blog_index, name="blog_index"),
6+
path("<int:pk>/", views.blog_detail, name="blog_detail"),
7+
path("<category>/", views.blog_category, name="blog_category"),
8+
]

rp-portfolio/blog/views.py

Lines changed: 36 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,37 @@
1-
# from django.shortcuts import render
1+
from django.shortcuts import render
22

3-
# Create your views here.
3+
from blog.forms import CommentForm
4+
from blog.models import Post, Comment
5+
6+
7+
def blog_index(request):
8+
posts = Post.objects.all().order_by("-created_on")
9+
context = {"posts": posts}
10+
return render(request, "blog_index.html", context)
11+
12+
13+
def blog_category(request, category):
14+
posts = Post.objects.filter(categories__name__contains=category).order_by(
15+
"-created_on"
16+
)
17+
context = {"category": category, "posts": posts}
18+
return render(request, "blog_category.html", context)
19+
20+
21+
def blog_detail(request, pk):
22+
post = Post.objects.get(pk=pk)
23+
comments = Comment.objects.filter(post=post)
24+
25+
form = CommentForm()
26+
if request.method == "POST":
27+
form = CommentForm(request.POST)
28+
if form.is_valid():
29+
comment = Comment(
30+
author=form.cleaned_data["author"],
31+
body=form.cleaned_data["body"],
32+
post=post,
33+
)
34+
comment.save()
35+
36+
context = {"post": post, "comments": comments, "form": form}
37+
return render(request, "blog_detail.html", context)

rp-portfolio/personal_portfolio/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,5 @@
1919
urlpatterns = [
2020
path("admin/", admin.site.urls),
2121
path("projects/", include("projects.urls")),
22+
path("blog/", include("blog.urls")),
2223
]

0 commit comments

Comments
 (0)