Skip to content

Commit

Permalink
bug修复
Browse files Browse the repository at this point in the history
  • Loading branch information
liangliangyy committed Oct 20, 2018
1 parent 0477a15 commit e5e2bab
Show file tree
Hide file tree
Showing 5 changed files with 33 additions and 14 deletions.
16 changes: 9 additions & 7 deletions DjangoBlog/blog_signals.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
from django.db.models.signals import post_save
from django.contrib.auth.signals import user_logged_in, user_logged_out, user_login_failed

from DjangoBlog.utils import cache, send_email, expire_view_cache, get_blog_setting
from DjangoBlog.utils import cache, send_email, expire_view_cache, get_blog_setting, delete_view_cache
from DjangoBlog.spider_notify import SpiderNotify
from oauth.models import OAuthUser
from blog.models import Article, Category, Tag, Links, SideBar, BlogSettings
Expand Down Expand Up @@ -65,12 +65,16 @@ def send_email_signal_handler(sender, **kwargs):
def oauth_user_login_signal_handler(sender, **kwargs):
id = kwargs['id']
oauthuser = OAuthUser.objects.get(id=id)
setting = get_blog_setting()
if oauthuser.picture and not oauthuser.picture.startswith(setting.resource_path):
site = Site.objects.get_current().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)
oauthuser.save()

delete_view_cache(oauthuser.author.username)

cache.clear()


@receiver(post_save)
def model_post_save_callback(sender, instance, created, raw, using, update_fields, **kwargs):
Expand Down Expand Up @@ -99,10 +103,7 @@ def model_post_save_callback(sender, instance, created, raw, using, update_field
cache.delete('seo_processor')
comment_cache_key = 'article_comments_{id}'.format(id=instance.article.id)
cache.delete(comment_cache_key)
from django.core.cache.utils import make_template_fragment_key
key = make_template_fragment_key('sidebar', [instance.author.username])
logger.info('delete sidebar key:' + key)
cache.delete(key)
delete_view_cache(instance.author.username)

_thread.start_new(send_comment_email, (instance,))

Expand All @@ -114,4 +115,5 @@ def model_post_save_callback(sender, instance, created, raw, using, update_field
@receiver(user_logged_out)
def user_auth_callback(sender, request, user, **kwargs):
logger.info(user)
delete_view_cache(user.username)
cache.clear()
19 changes: 17 additions & 2 deletions DjangoBlog/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -209,11 +209,19 @@ def get_blog_setting():


def save_user_avatar(url):
setting = get_blog_setting()
logger.info(url)
try:
imgname = url.split('/')[-1]
if imgname:
path = r'{basedir}/avatar/{img}'.format(basedir=setting.resource_path, img=imgname)
if os.path.exists(path):
os.remove(path)
except:
pass
try:
rsp = requests.get(url, timeout=2)
if rsp.status_code == 200:
setting = get_blog_setting()

basepath = r'{basedir}/avatar/'.format(basedir=setting.resource_path)
if not os.path.exists(basepath):
os.makedirs(basepath)
Expand All @@ -229,3 +237,10 @@ def save_user_avatar(url):
except Exception as e:
logger.error(e)
return url


def delete_view_cache(username):
from django.core.cache.utils import make_template_fragment_key
key = make_template_fragment_key('sidebar', [username])
logger.info('delete sidebar key:' + key)
cache.delete(key)
2 changes: 2 additions & 0 deletions accounts/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
import datetime
from accounts.models import BlogUser
from django.urls import reverse
from DjangoBlog.utils import *


# Create your tests here.
Expand Down Expand Up @@ -58,6 +59,7 @@ def test_validate_register(self):
user.is_superuser = True
user.is_staff = True
user.save()
delete_view_cache(user.username)
category = Category()
category.name = "categoryaaa"
category.created_time = datetime.datetime.now()
Expand Down
3 changes: 0 additions & 3 deletions oauth/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,6 @@ def get_readonly_fields(self, request, obj=None):
def has_add_permission(self, request):
return False

def has_delete_permission(self, request, obj=None):
return False

def link_to_usermodel(self, obj):
if obj.author:
info = (obj.author._meta.app_label, obj.author._meta.model_name)
Expand Down
7 changes: 5 additions & 2 deletions oauth/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,11 @@ def authorize(request):
import datetime
user.nikename = "djangoblog" + datetime.datetime.now().strftime('%y%m%d%I%M%S')
try:
user = OAuthUser.objects.get(type=type, openid=user.openid)
temp = OAuthUser.objects.get(type=type, openid=user.openid)
temp.picture = user.picture
temp.matedata = user.matedata
temp.nikename = user.nikename
user = temp
except ObjectDoesNotExist:
pass
# facebook的token过长
Expand All @@ -83,7 +87,6 @@ def authorize(request):

oauth_user_login_signal.send(sender=authorize.__class__, id=user.id)
login(request, author)

return HttpResponseRedirect(nexturl)
if not email:
user.save()
Expand Down

0 comments on commit e5e2bab

Please sign in to comment.