diff --git a/DjangoBlog/utils.py b/DjangoBlog/utils.py index 3946dd6..110b573 100644 --- a/DjangoBlog/utils.py +++ b/DjangoBlog/utils.py @@ -261,11 +261,11 @@ def save_user_avatar(url): def delete_sidebar_cache(username): from django.core.cache.utils import make_template_fragment_key - from blog.models import LINK_SHOW_TYPE + from blog.models import LinkShowType keys = ( make_template_fragment_key( 'sidebar', [ - username + x[0]]) for x in LINK_SHOW_TYPE) + username + x[0]]) for x in LinkShowType.choices) for k in keys: logger.info('delete sidebar key:' + k) cache.delete(k) diff --git a/blog/models.py b/blog/models.py index 78deeae..6612599 100644 --- a/blog/models.py +++ b/blog/models.py @@ -14,13 +14,13 @@ from mdeditor.fields import MDTextField logger = logging.getLogger(__name__) -LINK_SHOW_TYPE = ( - ('i', '首页'), - ('l', '列表页'), - ('p', '文章页面'), - ('a', '全站'), - ('s', '友情链接页面'), -) + +class LinkShowType(models.TextChoices): + I = ('i', '首页') + L = ('l', '列表页') + P = ('p', '文章页面') + A = ('a', '全站') + S = ('s', '友情链接页面') class BaseModel(models.Model): @@ -258,8 +258,8 @@ class Links(models.Model): show_type = models.CharField( '显示类型', max_length=1, - choices=LINK_SHOW_TYPE, - default='i') + choices=LinkShowType.choices, + default=LinkShowType.I) created_time = models.DateTimeField('创建时间', default=now) last_mod_time = models.DateTimeField('修改时间', default=now) diff --git a/blog/templatetags/blog_tags.py b/blog/templatetags/blog_tags.py index dc8ee3a..b9b9852 100644 --- a/blog/templatetags/blog_tags.py +++ b/blog/templatetags/blog_tags.py @@ -20,7 +20,7 @@ from django.template.defaultfilters import stringfilter from django.utils.safestring import mark_safe import random from django.urls import reverse -from blog.models import Article, Category, Tag, Links, SideBar +from blog.models import Article, Category, Tag, Links, SideBar, LinkShowType from django.utils.encoding import force_text from django.shortcuts import get_object_or_404 import hashlib @@ -144,7 +144,7 @@ def load_sidebar(user, linktype): '-views')[:blogsetting.sidebar_article_count] dates = Article.objects.datetimes('created_time', 'month', order='DESC') links = Links.objects.filter(is_enable=True).filter( - Q(show_type=str(linktype)) | Q(show_type='a')) + Q(show_type=str(linktype)) | Q(show_type=LinkShowType.A)) commment_list = Comment.objects.filter(is_enable=True).order_by( '-id')[:blogsetting.sidebar_comment_count] # 标签云 计算字体大小 diff --git a/blog/views.py b/blog/views.py index 19f5275..750160d 100644 --- a/blog/views.py +++ b/blog/views.py @@ -12,7 +12,7 @@ from django.views.decorators.csrf import csrf_exempt from django.contrib.auth.decorators import login_required from DjangoBlog.utils import cache, get_md5, get_blog_setting from django.shortcuts import get_object_or_404 -from blog.models import Article, Category, Tag, Links +from blog.models import Article, Category, Tag, Links, LinkShowType from comments.forms import CommentForm import logging @@ -30,7 +30,7 @@ class ArticleListView(ListView): page_type = '' paginate_by = settings.PAGINATE_BY page_kwarg = 'page' - link_type = 'l' + link_type = LinkShowType.L def get_view_cache_key(self): return self.request.get['pages'] @@ -89,7 +89,7 @@ class IndexView(ArticleListView): 首页 ''' # 友情链接类型 - link_type = 'i' + link_type = LinkShowType.I def get_queryset_data(self): article_list = Article.objects.filter(type='a', status='p')