@@ -45,17 +45,18 @@ def get_description(self):
45
45
pass
46
46
"""
47
47
48
-
48
+ """
49
49
class CachedTemplateView(ListView):
50
50
@classonlymethod
51
51
def as_view(cls, **initkwargs):
52
52
# print(request)
53
53
54
54
view = super(CachedTemplateView, cls).as_view(**initkwargs)
55
55
return cache_page(60 * 60 * 10)(view)
56
+ """
56
57
57
58
58
- class ArticleListView (CachedTemplateView ):
59
+ class ArticleListView (ListView ):
59
60
# template_name属性用于指定使用哪个模板进行渲染
60
61
template_name = 'blog/article_index.html'
61
62
@@ -67,25 +68,13 @@ class ArticleListView(CachedTemplateView):
67
68
paginate_by = settings .PAGINATE_BY
68
69
page_kwarg = 'page'
69
70
70
- def get_cache_key (self ):
71
- raise NotImplementedError ( "implement this function" )
71
+ def get_view_cache_key (self ):
72
+ return self . request . get [ 'pages' ]
72
73
73
74
74
75
class IndexView (ArticleListView ):
75
76
def get_queryset (self ):
76
- """
77
- try:
78
- # _auth_user_id
79
- from DjangoBlog.utils import SessionStore
80
- s = SessionStore(session_key='_auth_user_id')
81
- print(s)
82
- except:
83
- pass
84
- """
85
77
article_list = Article .objects .filter (type = 'a' , status = 'p' )
86
- # for article in article_list:
87
- # article.body = article.body[0:settings.ARTICLE_SUB_LENGTH]
88
- # # article.body = markdown2.markdown(article.body)
89
78
return article_list
90
79
91
80
@@ -97,6 +86,7 @@ class ArticleDetailView(DetailView):
97
86
98
87
def get_object (self ):
99
88
obj = super (ArticleDetailView , self ).get_object ()
89
+
100
90
obj .viewed ()
101
91
# obj.body = markdown2.markdown(obj.body)
102
92
self .object = obj
@@ -128,11 +118,13 @@ def get_context_data(self, **kwargs):
128
118
129
119
return super (ArticleDetailView , self ).get_context_data (** kwargs )
130
120
121
+ """
131
122
@classonlymethod
132
123
def as_view(cls, **initkwargs):
133
124
self = cls(**initkwargs)
134
125
keyperfix = "blogdetail"
135
126
return cache_page(60 * 60 * 10, key_prefix=keyperfix)(super(ArticleDetailView, cls).as_view(**initkwargs))
127
+ """
136
128
137
129
138
130
"""
@@ -159,20 +151,13 @@ def get_object(self):
159
151
160
152
161
153
class CategoryDetailView (ArticleListView ):
162
- # template_name = 'article_index.html'
163
- # context_object_name = 'article_list'
164
-
165
- # pk_url_kwarg = 'article_name'
166
154
page_type = "分类目录归档"
167
- """
168
- def get_cache_key(self):
169
- categoryname = self.kwargs['category_name']
170
- return "category_list:{categoryname}".format(categoryname=categoryname)
171
- """
172
155
173
156
def get_queryset (self ):
174
- categoryname = self .kwargs ['category_name' ]
175
-
157
+ slug = self .kwargs ['category_name' ]
158
+ category = Category .objects .get (slug = slug )
159
+ categoryname = category .name
160
+ self .categoryname = categoryname
176
161
try :
177
162
categoryname = categoryname .split ('/' )[- 1 ]
178
163
except :
@@ -181,7 +166,10 @@ def get_queryset(self):
181
166
return article_list
182
167
183
168
def get_context_data (self , ** kwargs ):
184
- categoryname = self .kwargs ['category_name' ]
169
+ # slug = self.kwargs['category_name']
170
+ # category = Category.objects.get(slug=slug)
171
+ # categoryname = category.name
172
+ categoryname = self .categoryname
185
173
try :
186
174
categoryname = categoryname .split ('/' )[- 1 ]
187
175
except :
@@ -221,12 +209,16 @@ class TagDetailView(ArticleListView):
221
209
page_type = '分类标签归档'
222
210
223
211
def get_queryset (self ):
224
- tag_name = self .kwargs ['tag_name' ]
212
+ slug = self .kwargs ['category_name' ]
213
+ tag = Tag .objects .get (slug = slug )
214
+ tag_name = tag .name
215
+ self .name = tag_name
225
216
article_list = Article .objects .filter (tags__name = tag_name )
226
217
return article_list
227
218
228
219
def get_context_data (self , ** kwargs ):
229
- tag_name = self .kwargs ['tag_name' ]
220
+ # tag_name = self.kwargs['tag_name']
221
+ tag_name = self .name
230
222
kwargs ['page_type' ] = TagDetailView .page_type
231
223
kwargs ['tag_name' ] = tag_name
232
224
return super (TagDetailView , self ).get_context_data (** kwargs )
0 commit comments