File tree Expand file tree Collapse file tree 3 files changed +49
-1
lines changed
Expand file tree Collapse file tree 3 files changed +49
-1
lines changed Original file line number Diff line number Diff line change @@ -18,4 +18,30 @@ <h1>{{ object.title }}</h1>
1818 </ div >
1919 </ div >
2020 </ div >
21+
22+ < div class ="row my-3 ">
23+ < div class ="col-md-6 col-12 mx-md-auto mx-3 ">
24+ {% if object.likes.count == 1 %}
25+ < p > {{ object.likes.count }} person liked</ p >
26+ {% else %}
27+ < p > {{ object.likes.count }} people liked</ p >
28+ {% endif %}
29+
30+ {% if request.user.is_authenticated %}
31+ {% if liked_by_user %}
32+ < form method ="POST " action ="{% url 'like_article' object.id %} ">
33+ {% csrf_token %}
34+ < button class ="btn btn-outline-primary "> unlike this post</ button >
35+ </ form >
36+ {% else %}
37+ < form method ="POST " action ="{% url 'like_article' object.id %} ">
38+ {% csrf_token %}
39+ < button class ="btn btn-outline-primary "> like this post</ button >
40+ </ form >
41+ {% endif %}
42+ {% else %}
43+ < button class ="btn btn-outline-primary " disabled > do you want like this post? so login here</ button >
44+ {% endif %}
45+ </ div >
46+ </ div >
2147{% endblock %}
Original file line number Diff line number Diff line change 66 path ('tinymce/' , include ('tinymce.urls' )),
77 path ('about/' , About .as_view (), name = 'about' ),
88 path ('<int:pk>/' , DetailArticleView .as_view (), name = 'detail_article' ),
9+ path ('<int:pk>/like/' , LikeArticle .as_view (), name = 'like_article' ),
910]
Original file line number Diff line number Diff line change 1- from django .shortcuts import render
1+ from django .shortcuts import render , redirect
22from django .views import View
33from django .views .generic import ListView , DetailView
44
@@ -15,6 +15,27 @@ class DetailArticleView(DetailView):
1515 model = Article
1616 template_name = 'blog/blog_post.html'
1717
18+ def get_context_data (self , * args , ** kwargs ):
19+ context = super (DetailArticleView , self ).get_context_data (* args , ** kwargs )
20+ context ['liked_by_user' ] = False
21+ article = Article .objects .get (id = self .kwargs .get ('pk' ))
22+ if article .likes .filter (pk = self .request .user .id ).exists ():
23+ context ['liked_by_user' ] = True
24+
25+ return context
26+
27+ class LikeArticle (View ):
28+ def post (self , request , pk ):
29+ article = Article .objects .get (id = pk )
30+ if article .likes .filter (pk = self .request .user .id ).exists ():
31+ article .likes .remove (request .user .id )
32+ else :
33+ article .likes .add (request .user .id )
34+
35+ article .save ()
36+ return redirect ('detail_article' , pk )
37+
38+
1839
1940class About (View ):
2041 def get (self , request ):
You can’t perform that action at this time.
0 commit comments