14
14
15
15
# Create your views here.
16
16
17
+ #Index page with latest posts
17
18
def index (request ):
18
19
post_list = Post .objects .order_by ('published_date' )
19
20
@@ -24,47 +25,83 @@ def index(request):
24
25
my_dict = {'posts' :posts }
25
26
return render (request , 'blog/index.html' , context = my_dict )
26
27
27
-
28
+ #Post details page
28
29
def post_details (request , pk ):
29
30
post_list = Post .objects .get (id = pk )
30
31
post_id = post_list .id
31
32
comments = post_list .comments .all ()
32
33
my_dict = {'post' :post_list , 'comments' :comments }
33
34
return render (request , 'blog/single.html' , context = my_dict )
34
35
36
+ #All posts by published year
35
37
def archeive_posts (request , year ):
36
38
post_list = Post .objects .filter (published_date__year = year )
37
- context = {'year' :year ,'posts' :post_list }
39
+ paginator = Paginator (post_list , 5 ) # Show 5 posts per page
40
+ page = request .GET .get ('page' )
41
+ posts = paginator .get_page (page )
42
+
43
+ context = {'year' :year ,'posts' :posts }
38
44
return render (request , 'blog/archeive.html' , context )
39
45
46
+ #All posts by post tag
40
47
def archeive_posts_by_tag (request , tag ):
41
48
post_list = Post .objects .filter (tag = tag )
42
- context = {'posts' :post_list }
49
+
50
+ paginator = Paginator (post_list , 5 ) # Show 5 posts per page
51
+ page = request .GET .get ('page' )
52
+ posts = paginator .get_page (page )
53
+
54
+ context = {'posts' :posts }
43
55
return render (request , 'blog/archeive.html' , context )
44
56
57
+ #All posts by post category
45
58
def archeive_posts_by_category (request , category ):
46
59
post_list = Post .objects .filter (category = category )
47
- context = {'posts' :post_list }
60
+
61
+ paginator = Paginator (post_list , 5 ) # Show 5 posts per page
62
+ page = request .GET .get ('page' )
63
+ posts = paginator .get_page (page )
64
+
65
+ context = {'posts' :posts }
48
66
return render (request , 'blog/archeive.html' , context )
49
67
68
+ #All posts by a specific author
50
69
def archeive_posts_by_author (request , username ):
51
70
author = User .objects .get (username = username )
52
71
post_list = Post .objects .filter (author = author .id )
53
- context = {'posts' :post_list }
72
+
73
+ paginator = Paginator (post_list , 5 ) # Show 5 posts per page
74
+ page = request .GET .get ('page' )
75
+ posts = paginator .get_page (page )
76
+
77
+ context = {'posts' :posts }
54
78
return render (request , 'blog/archeive.html' , context )
55
79
80
+ #All posts by published_date
56
81
def archeive_posts_by_date (request , year , month , day ):
57
82
post_list = Post .objects .filter (published_date__year = year , published_date__month = month , published_date__day = day )
58
- context = {'posts' :post_list }
83
+
84
+ paginator = Paginator (post_list , 5 ) # Show 5 posts per page
85
+ page = request .GET .get ('page' )
86
+ posts = paginator .get_page (page )
87
+
88
+ context = {'posts' :posts }
59
89
return render (request , 'blog/archeive.html' , context )
60
90
91
+ #Search Result
61
92
def search_view (request ):
62
93
if request .method == 'GET' :
63
94
search_query = request .GET .get ('search_box' )
64
95
post_list = Post .objects .filter (title__contains = search_query ) | Post .objects .filter (content__contains = search_query ) | Post .objects .filter (tag__contains = search_query ) | Post .objects .filter (category__contains = search_query )
65
- context = {'posts' :post_list }
96
+
97
+ paginator = Paginator (post_list , 5 ) # Show 5 posts per page
98
+ page = request .GET .get ('page' )
99
+ posts = paginator .get_page (page )
100
+
101
+ context = {'posts' :posts }
66
102
return render (request , 'blog/archeive.html' , context )
67
103
104
+ #Comment submission by logged in user
68
105
@login_required
69
106
def submit_comment (request ):
70
107
@@ -88,11 +125,13 @@ def submit_comment(request):
88
125
return HttpResponseRedirect (reverse ('index' )) # have to work here
89
126
90
127
128
+ #Log out from b
91
129
@login_required
92
130
def user_logout (request ):
93
131
logout (request )
94
132
return HttpResponseRedirect (reverse ('index' ))
95
133
134
+ #Authentication and Login
96
135
def user_login (request ):
97
136
98
137
if request .method == 'POST' :
@@ -115,6 +154,7 @@ def user_login(request):
115
154
return render (request ,'blog/login.html' , {})
116
155
117
156
157
+ #New user registration
118
158
def registration (request ):
119
159
registered = False
120
160
@@ -148,6 +188,7 @@ def registration(request):
148
188
'profile_form' :profile_form ,
149
189
'registered' :registered })
150
190
191
+ #New Post creation in custom backend.this function is not workable right now.It will updated in next version
151
192
@login_required
152
193
def post_form_view (request ):
153
194
form = forms .PostForm ()
0 commit comments