diff --git a/DjangoBlog/admin_site.py b/DjangoBlog/admin_site.py index 502cf9b..87b008a 100644 --- a/DjangoBlog/admin_site.py +++ b/DjangoBlog/admin_site.py @@ -13,10 +13,10 @@ @time: 2018/1/7 上午2:21 """ from django.contrib.admin import AdminSite -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from django.contrib.sites.admin import SiteAdmin from django.contrib.admin.models import LogEntry - +from django.contrib.sites.models import Site from DjangoBlog.logentryadmin import LogEntryAdmin from blog.admin import * from accounts.admin import * diff --git a/DjangoBlog/blog_signals.py b/DjangoBlog/blog_signals.py index b59c039..f05ee6f 100644 --- a/DjangoBlog/blog_signals.py +++ b/DjangoBlog/blog_signals.py @@ -17,7 +17,7 @@ import django.dispatch from django.dispatch import receiver from django.conf import settings from django.contrib.admin.models import LogEntry -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from django.core.mail import EmailMultiAlternatives from django.db.models.signals import post_save from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed @@ -65,7 +65,7 @@ def send_email_signal_handler(sender, **kwargs): def oauth_user_login_signal_handler(sender, **kwargs): id = kwargs['id'] oauthuser = OAuthUser.objects.get(id=id) - site = Site.objects.get_current().domain + site = get_current_site().domain if oauthuser.picture and not oauthuser.picture.find(site) >= 0: from DjangoBlog.utils import save_user_avatar oauthuser.picture = save_user_avatar(oauthuser.picture) @@ -94,7 +94,7 @@ def model_post_save_callback(sender, instance, created, raw, using, update_field if isinstance(instance, Comment): path = instance.article.get_absolute_url() - site = Site.objects.get_current().domain + site = get_current_site().domain if site.find(':') > 0: site = site[0:site.find(':')] diff --git a/DjangoBlog/feeds.py b/DjangoBlog/feeds.py index fd2c5c5..37d64b0 100644 --- a/DjangoBlog/feeds.py +++ b/DjangoBlog/feeds.py @@ -20,7 +20,7 @@ from django.utils.feedgenerator import Rss201rev2Feed from DjangoBlog.utils import CommonMarkdown from django.contrib.auth import get_user_model from django.contrib.auth.models import User -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site class DjangoBlogFeed(Feed): @@ -46,7 +46,7 @@ class DjangoBlogFeed(Feed): return CommonMarkdown.get_markdown(item.body) def feed_copyright(self): - # print(Site.objects.get_current().name) + # print(get_current_site().name) return "Copyright© 2018 且听风吟" def item_link(self, item): diff --git a/DjangoBlog/tests.py b/DjangoBlog/tests.py index fcde227..09fb617 100644 --- a/DjangoBlog/tests.py +++ b/DjangoBlog/tests.py @@ -16,7 +16,7 @@ from django.test import Client, RequestFactory, TestCase from blog.models import Article, Category, Tag from django.contrib.auth import get_user_model -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from django.urls import reverse import datetime from DjangoBlog.utils import * diff --git a/DjangoBlog/utils.py b/DjangoBlog/utils.py index 176d34b..6c6939e 100644 --- a/DjangoBlog/utils.py +++ b/DjangoBlog/utils.py @@ -21,11 +21,7 @@ from pygments import highlight from pygments.lexers import get_lexer_by_name from pygments.formatters import html import logging -import _thread -from django.core.mail import EmailMultiAlternatives -from django.conf import settings import requests -import datetime import uuid import os @@ -63,7 +59,7 @@ def cache_decorator(expiration=3 * 60): # logger.info('cache_decorator get cache:%s key:%s' % (func.__name__, key)) return value else: - # logger.info('cache_decorator set cache:%s key:%s' % (func.__name__, key)) + logger.info('cache_decorator set cache:%s key:%s' % (func.__name__, key)) value = func(*args, **kwargs) cache.set(key, value, expiration) return value @@ -110,6 +106,12 @@ def block_code(text, lang, inlinestyles=False, linenos=False): ) +@cache_decorator() +def get_current_site(): + site = Site.objects.get_current() + return site + + class BlogMarkDownRenderer(mistune.Renderer): def block_code(self, text, lang=None): # renderer has an options @@ -124,13 +126,13 @@ class BlogMarkDownRenderer(mistune.Renderer): link = 'mailto:%s' % link if not link: link = "#" - site = Site.objects.get_current() + site = get_current_site() nofollow = "" if link.find(site.domain) > 0 else "rel='nofollow'" return '%s' % (link, nofollow, text) def link(self, link, title, text): link = escape_link(link) - site = Site.objects.get_current() + site = get_current_site() nofollow = "" if link.find(site.domain) > 0 else "rel='nofollow'" if not link: link = "#" @@ -152,25 +154,6 @@ class CommonMarkdown(): def send_email(emailto, title, content): from DjangoBlog.blog_signals import send_email_signal send_email_signal.send(send_email.__class__, emailto=emailto, title=title, content=content) - # msg = EmailMultiAlternatives(title, content, from_email=settings.DEFAULT_FROM_EMAIL, to=emailto) - # msg.content_subtype = "html" - # - # def sendmsg_withlog(): - # from servermanager.models import EmailSendLog - # log = EmailSendLog() - # log.title = title - # log.content = content - # log.emailto = ','.join(emailto) - # - # try: - # result = msg.send() - # log.send_result = result > 0 - # except Exception as e: - # logger.error(e) - # log.send_result = False - # log.save() - # - # _thread.start_new_thread(sendmsg_withlog, ()) def parse_dict_to_url(dict): @@ -183,7 +166,6 @@ def parse_dict_to_url(dict): def get_blog_setting(): value = cache.get('get_blog_setting') if value: - logger.info('get cache get_blog_setting') return value else: from blog.models import BlogSettings diff --git a/accounts/models.py b/accounts/models.py index 1ce5059..1b40384 100644 --- a/accounts/models.py +++ b/accounts/models.py @@ -1,7 +1,7 @@ from django.db import models from django.contrib.auth.models import AbstractUser, BaseUserManager from django.urls import reverse -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from django.utils.timezone import now @@ -22,6 +22,6 @@ class BlogUser(AbstractUser): return self.email def get_full_url(self): - site = Site.objects.get_current().domain + site = get_current_site().domain url = "https://{site}{path}".format(site=site, path=self.get_absolute_url()) return url diff --git a/accounts/tests.py b/accounts/tests.py index 29fe028..7fdeaba 100644 --- a/accounts/tests.py +++ b/accounts/tests.py @@ -1,7 +1,7 @@ from django.test import Client, RequestFactory, TestCase from blog.models import Article, Category, Tag from django.contrib.auth import get_user_model -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site import datetime from accounts.models import BlogUser from django.urls import reverse @@ -16,7 +16,7 @@ class AccountTest(TestCase): self.factory = RequestFactory() def test_validate_account(self): - site = Site.objects.get_current().domain + site = get_current_site().domain user = BlogUser.objects.create_superuser(email="liangliangyy1@gmail.com", username="liangliangyy1", password="qwer!@#$ggg") testuser = BlogUser.objects.get(username='liangliangyy1') diff --git a/blog/admin.py b/blog/admin.py index e0db8fb..30b5c34 100644 --- a/blog/admin.py +++ b/blog/admin.py @@ -89,8 +89,8 @@ class ArticlelAdmin(admin.ModelAdmin): url = obj.get_full_url() return url else: - from django.contrib.sites.models import Site - site = Site.objects.get_current().domain + from DjangoBlog.utils import get_current_site + site = get_current_site().domain return site diff --git a/blog/context_processors.py b/blog/context_processors.py index 606ecd0..8cf7799 100644 --- a/blog/context_processors.py +++ b/blog/context_processors.py @@ -25,7 +25,6 @@ def seo_processor(requests): key = 'seo_processor' value = cache.get(key) if value: - logger.info('get processor cache.') return value else: logger.info('set processor cache.') diff --git a/blog/management/commands/ping_baidu.py b/blog/management/commands/ping_baidu.py index 6ab51b7..cbd398a 100644 --- a/blog/management/commands/ping_baidu.py +++ b/blog/management/commands/ping_baidu.py @@ -16,9 +16,9 @@ from django.core.management.base import BaseCommand, CommandError from blog.models import Article, Tag, Category from DjangoBlog.spider_notify import SpiderNotify -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site -site = Site.objects.get_current().domain +site = get_current_site().domain class Command(BaseCommand): diff --git a/blog/models.py b/blog/models.py index 9191d83..a7e981d 100644 --- a/blog/models.py +++ b/blog/models.py @@ -7,7 +7,7 @@ from django.conf import settings from uuslug import slugify from django.core.exceptions import ValidationError from django.utils.translation import gettext_lazy as _ -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from DjangoBlog.utils import cache_decorator, cache from django.utils.functional import cached_property from django.utils.timezone import now @@ -40,7 +40,7 @@ class BaseModel(models.Model): # article_save_signal.send(sender=self.__class__, is_update_views=is_update_views, id=self.id) def get_full_url(self): - site = Site.objects.get_current().domain + site = get_current_site().domain url = "https://{site}{path}".format(site=site, path=self.get_absolute_url()) return url diff --git a/blog/templatetags/blog_tags.py b/blog/templatetags/blog_tags.py index 63bc169..f0072b0 100644 --- a/blog/templatetags/blog_tags.py +++ b/blog/templatetags/blog_tags.py @@ -29,7 +29,7 @@ from comments.models import Comment from DjangoBlog.utils import cache_decorator, cache from django.contrib.auth import get_user_model from oauth.models import OAuthUser -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site import logging logger = logging.getLogger(__name__) @@ -96,7 +96,7 @@ def load_breadcrumb(article): names = article.get_category_tree() from DjangoBlog.utils import get_blog_setting blogsetting = get_blog_setting() - site = Site.objects.get_current().domain + site = get_current_site().domain names.append((blogsetting.sitename, '/')) names = names[::-1] diff --git a/blog/tests.py b/blog/tests.py index 1a7ce34..0010e37 100644 --- a/blog/tests.py +++ b/blog/tests.py @@ -1,7 +1,7 @@ from django.test import Client, RequestFactory, TestCase from blog.models import Article, Category, Tag, SideBar from django.contrib.auth import get_user_model -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from blog.forms import BlogSearchForm from django.core.paginator import Paginator from blog.templatetags.blog_tags import load_pagination_info, load_articletags @@ -21,7 +21,7 @@ class ArticleTest(TestCase): self.factory = RequestFactory() def test_validate_article(self): - site = Site.objects.get_current().domain + site = get_current_site().domain user = BlogUser.objects.get_or_create(email="liangliangyy@gmail.com", username="liangliangyy")[0] user.set_password("liangliangyy") user.is_staff = True diff --git a/comments/tests.py b/comments/tests.py index 9a758a5..36d16d4 100644 --- a/comments/tests.py +++ b/comments/tests.py @@ -1,7 +1,7 @@ from django.test import Client, RequestFactory, TestCase from blog.models import Article, Category, Tag from django.contrib.auth import get_user_model -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from django.urls import reverse import datetime from accounts.models import BlogUser @@ -17,7 +17,7 @@ class CommentsTest(TestCase): self.factory = RequestFactory() def test_validate_comment(self): - site = Site.objects.get_current().domain + site = get_current_site().domain user = BlogUser.objects.create_superuser(email="liangliangyy1@gmail.com", username="liangliangyy1", password="liangliangyy1") diff --git a/comments/utils.py b/comments/utils.py index ca667f9..38375b0 100644 --- a/comments/utils.py +++ b/comments/utils.py @@ -14,14 +14,14 @@ """ from DjangoBlog.utils import send_email -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site import logging logger = logging.getLogger(__name__) def send_comment_email(comment): - site = Site.objects.get_current().domain + site = get_current_site().domain subject = '感谢您发表的评论' article_url = "https://{site}{path}".format(site=site, path=comment.article.get_absolute_url()) html_content = """ diff --git a/oauth/views.py b/oauth/views.py index d338480..2e99a3d 100644 --- a/oauth/views.py +++ b/oauth/views.py @@ -12,7 +12,7 @@ from django.views.generic import FormView, RedirectView from oauth.forms import RequireEmailForm from django.urls import reverse from DjangoBlog.utils import send_email, get_md5, save_user_avatar -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from django.core.exceptions import ObjectDoesNotExist from django.http import HttpResponseForbidden from .oauthmanager import get_manager_by_type @@ -30,7 +30,7 @@ def get_redirecturl(request): return nexturl p = urlparse(nexturl) if p.netloc: - site = Site.objects.get_current().domain + site = get_current_site().domain if not p.netloc.replace('www.', '') == site.replace('www.', ''): logger.info('非法url:' + nexturl) return "/" @@ -127,7 +127,7 @@ def emailconfirm(request, id, sign): oauth_user_login_signal.send(sender=emailconfirm.__class__, id=oauthuser.id) login(request, author) - site = Site.objects.get_current().domain + site = get_current_site().domain content = '''
恭喜您,您已经成功绑定您的邮箱,您可以使用{type}来直接免密码登录本网站.欢迎您继续关注本站,地址是
@@ -181,7 +181,7 @@ class RequireEmailView(FormView): oauthuser.email = email oauthuser.save() sign = get_md5(settings.SECRET_KEY + str(oauthuser.id) + settings.SECRET_KEY) - site = Site.objects.get_current().domain + site = get_current_site().domain if settings.DEBUG: site = '127.0.0.1:8000' path = reverse('oauth:email_confirm', kwargs={ diff --git a/servermanager/tests.py b/servermanager/tests.py index d7f58a7..b993778 100644 --- a/servermanager/tests.py +++ b/servermanager/tests.py @@ -1,5 +1,5 @@ from django.test import Client, RequestFactory, TestCase -from django.contrib.sites.models import Site +from DjangoBlog.utils import get_current_site from .models import commands import datetime from accounts.models import BlogUser @@ -22,7 +22,7 @@ class ServerManagerTest(TestCase): self.assertIsNotNone(content) def test_validate_comment(self): - site = Site.objects.get_current().domain + site = get_current_site().domain user = BlogUser.objects.create_superuser(email="liangliangyy1@gmail.com", username="liangliangyy1", password="liangliangyy1")