2929from django .utils .decorators import method_decorator
3030from django .shortcuts import get_object_or_404
3131
32- """
33- class SeoProcessor():
34- __metaclass__ = ABCMeta
35-
36- @abstractmethod
37- def get_title(self):
38- pass
39-
40- @abstractmethod
41- def get_keywords(self):
42- pass
43-
44- @abstractmethod
45- def get_description(self):
46- pass
47- """
48-
49- """
50- class CachedTemplateView(ListView):
51- @classonlymethod
52- def as_view(cls, **initkwargs):
53- # print(request)
54-
55- view = super(CachedTemplateView, cls).as_view(**initkwargs)
56- return cache_page(60 * 60 * 10)(view)
57- """
58-
5932
6033class ArticleListView (ListView ):
6134 # template_name属性用于指定使用哪个模板进行渲染
@@ -117,24 +90,6 @@ def get_queryset_cache_key(self):
11790 cache_key = 'index_{page}' .format (page = self .page_number )
11891 return cache_key
11992
120- '''
121- def get_queryset(self):
122- # return self.get_queryset_data()
123- cache_key = 'index_{page}'.format(page=self.page_number)
124- return self.get_queryset_from_cache(cache_key=cache_key)
125- """
126- value = cache.get(cache_key)
127- if value:
128- logger.info('get view cache.key:{key}'.format(key=cache_key))
129- return value
130- else:
131- article_list = Article.objects.filter(type='a', status='p')
132- cache.set(cache_key, article_list)
133- logger.info('set view cache.key:{key}'.format(key=cache_key))
134- return article_list
135- """
136- '''
137-
13893
13994class ArticleDetailView (DetailView ):
14095 template_name = 'blog/article_detail.html'
@@ -175,37 +130,6 @@ def get_context_data(self, **kwargs):
175130
176131 return super (ArticleDetailView , self ).get_context_data (** kwargs )
177132
178- """
179- @classonlymethod
180- def as_view(cls, **initkwargs):
181- self = cls(**initkwargs)
182- keyperfix = "blogdetail"
183- return cache_page(60 * 60 * 10, key_prefix=keyperfix)(super(ArticleDetailView, cls).as_view(**initkwargs))
184- """
185-
186-
187- """
188- def post(self, request, *args, **kwargs):
189- form = CommentForm(request.POST)
190-
191- if form.is_valid():
192- data = form.cleaned_data
193- pass
194- """
195-
196- '''
197- class PageDetailView(ArticleDetailView):
198- model = BlogPage
199- pk_url_kwarg = 'page_id'
200-
201- def get_object(self):
202- obj = super(PageDetailView, self).get_object()
203- print(obj.title)
204- obj.viewed()
205- # obj.body = markdown2.markdown(obj.body)
206- return obj
207- '''
208-
209133
210134class CategoryDetailView (ArticleListView ):
211135 page_type = "分类目录归档"
@@ -226,35 +150,8 @@ def get_queryset_cache_key(self):
226150 cache_key = 'category_list_{categoryname}_{page}' .format (categoryname = categoryname , page = self .page_number )
227151 return cache_key
228152
229- '''
230- def get_queryset(self):
231- slug = self.kwargs['category_name']
232- # category = Category.objects.get(slug=slug)
233- category = get_object_or_404(Category, slug=slug)
234- categoryname = category.name
235- self.categoryname = categoryname
236- try:
237- categoryname = categoryname.split('/')[-1]
238- except:
239- pass
240-
241- cache_key = 'category_list_{categoryname}_{page}'.format(categoryname=categoryname, page=self.page_number)
242-
243- value = cache.get(cache_key)
244- if value:
245- logger.info('get view cache.key:{key}'.format(key=cache_key))
246- return value
247- else:
248- article_list = Article.objects.filter(category__name=categoryname, status='p')
249- cache.set(cache_key, article_list)
250- logger.info('set view cache.key:{key}'.format(key=cache_key))
251- return article_list
252- '''
253-
254153 def get_context_data (self , ** kwargs ):
255- # slug = self.kwargs['category_name']
256- # category = Category.objects.get(slug=slug)
257- # categoryname = category.name
154+
258155 categoryname = self .categoryname
259156 try :
260157 categoryname = categoryname .split ('/' )[- 1 ]
@@ -360,25 +257,18 @@ def refresh_memcache(request):
360257
361258
362259"""
363- class BlogSearchView(SearchView):
364- form_class = BlogSearchForm
365- template_name = 'blog/article_detail.html'
366- model = Article
367- # template_name属性用于指定使用哪个模板进行渲染
368- template_name = 'blog/article_index.html'
260+ class SeoProcessor():
261+ __metaclass__ = ABCMeta
369262
370- # context_object_name属性用于给上下文变量取名(在模板中使用该名字)
371- context_object_name = 'article_list'
263+ @abstractmethod
264+ def get_title(self):
265+ pass
372266
373- def get_queryset(self):
374- queryset = super(BlogSearchView, self).get_queryset()
375- # further filter queryset based on some set of criteria
376- # return queryset.filter(pub_date__gte=date(2015, 1, 1))
377- return queryset
267+ @abstractmethod
268+ def get_keywords(self):
269+ pass
378270
379- def get_context_data(self, **kwargs):
380- tag_name = 'search'
381- kwargs['page_type'] = 'search'
382- kwargs['tag_name'] = tag_name
383- return super(BlogSearchView, self).get_context_data(**kwargs)
271+ @abstractmethod
272+ def get_description(self):
273+ pass
384274"""
0 commit comments