优化页面链接

master
liangliang 9 years ago
parent 5e0d7c40a5
commit 43e638611a

@ -33,12 +33,19 @@ class Command(BaseCommand):
category = Category.objects.get_or_create(name='category', parent_category=pcategory)[0]
category.save()
for i in range(1, 10):
article = Article.objects.get_or_create(category=category,
title='nice title ' + str(i),
body='nice content ' + str(i),
author=user
)
)[0]
tag = Tag()
tag.name = "nicetag" + str(i)
tag.save()
article.tags.add(tag)
article.save()
from DjangoBlog.utils import cache
cache.clear()
self.stdout.write(self.style.SUCCESS('created test datas \n'))

@ -75,7 +75,15 @@ class Article(BaseModel):
get_latest_by = 'created_time'
def get_absolute_url(self):
return reverse('blog:detailbyid', kwargs={
'article_id': self.id,
'year': self.created_time.year,
'month': self.created_time.month,
'day': self.created_time.day
})
# todo remove
"""
return reverse('blog:detail', kwargs={
'article_id': self.id,
'year': self.created_time.year,
@ -83,6 +91,7 @@ class Article(BaseModel):
'day': self.created_time.day,
'slug': self.slug
})
"""
@cache_decorator(60 * 60 * 10)
def get_category_tree(self):

@ -24,11 +24,17 @@ urlpatterns = [
url(r'^$', views.IndexView.as_view(), name='index'),
url(r'^page/(?P<page>\d+)$', views.IndexView.as_view(), name='index_page'),
# 为了兼容之前的错误url后续去掉
# todo remove
url(r'^article/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/(?P<article_id>\d+)-(?P<slug>\S+).html$',
# cache_page(60 * 60 * 10, key_prefix="blogdetail")(views.ArticleDetailView.as_view()),
views.ArticleDetailView.as_view(),
name='detail'),
url(r'^article/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/(?P<article_id>\d+).html$',
views.ArticleDetailView.as_view(),
name='detailbyid'),
url(r'^blogpage/(?P<year>\d+)/(?P<month>\d+)/(?P<day>\d+)/(?P<page_id>\d+)-(?P<slug>[\w-]+).html$',
views.ArticleDetailView.as_view(),
name='pagedetail'),

@ -28,6 +28,7 @@ from django.utils.cache import get_cache_key
from django.utils.decorators import classonlymethod
from django.utils.decorators import method_decorator
from django.shortcuts import get_object_or_404
from django.http import HttpResponseRedirect
class ArticleListView(ListView):
@ -101,10 +102,18 @@ class ArticleDetailView(DetailView):
obj = super(ArticleDetailView, self).get_object()
obj.viewed()
# obj.body = markdown2.markdown(obj.body)
self.object = obj
return obj
def dispatch(self, request, *args, **kwargs):
# todo remove
slug = self.kwargs['slug'] if 'slug' in self.kwargs else ''
if slug:
obj = super(ArticleDetailView, self).get_object()
return HttpResponseRedirect(obj.get_absolute_url())
else:
return super(ArticleDetailView, self).dispatch(request, *args, **kwargs)
def get_context_data(self, **kwargs):
articleid = int(self.kwargs[self.pk_url_kwarg])

@ -12,6 +12,7 @@ class OAuthUser(models.Model):
picture = models.CharField(max_length=350, blank=True, null=True)
type = models.CharField(blank=False, null=False, max_length=50)
email = models.CharField(max_length=50, null=True, blank=True)
token = models.CharField(max_length=50, null=True, blank=True)
def __str__(self):
return self.nikename

@ -121,6 +121,7 @@ class WBOauthManager(BaseOauthManager):
user.nikename = datas['screen_name']
user.openid = datas['id']
user.type = 'weibo'
user.token = self.access_token
if 'email' in datas and datas['email']:
user.email = datas['email']
return user
@ -187,6 +188,7 @@ class GoogleOauthManager(BaseOauthManager):
user.picture = datas['picture']
user.nikename = datas['name']
user.openid = datas['sub']
user.token = self.access_token
user.type = 'google'
if datas['email']:
user.email = datas['email']
@ -252,6 +254,7 @@ class GitHubOauthManager(BaseOauthManager):
user.nikename = datas['name']
user.openid = datas['id']
user.type = 'github'
user.token = self.access_token
if datas['email']:
user.email = datas['email']

@ -7,7 +7,13 @@
srcset="{{ comment_item.author.email|gravatar_url:150 }}"
class="avatar avatar-96 photo" height="96" width="96">
<cite class="fn">
<a rel="nofollow" href="{{ comment_item.author.get_absolute_url }}" rel="external nofollow"
<a rel="nofollow"
{% if comment_item.author.is_superuser %}
href="{{ comment_item.author.get_absolute_url }}"
{% else %}
href="#"
{% endif %}
rel="external nofollow"
class="url">{{ comment_item.author.username }}
</a>
</cite>

Loading…
Cancel
Save