diff --git a/DjangoBlog/settings.py b/DjangoBlog/settings.py index 2ff980e..33d7b4c 100644 --- a/DjangoBlog/settings.py +++ b/DjangoBlog/settings.py @@ -199,3 +199,15 @@ OAHUTH = { SITE_ID = 2 BAIDU_NOTIFY_URL = "http://data.zz.baidu.com/urls?site=https://www.lylinux.net&token=1uAOGrMsUm5syDGn&type=original" + +#Emial: +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' + +EMAIL_USE_TLS = True +#EMAIL_USE_SSL = True + +EMAIL_HOST = 'smtp.exmail.qq.com' +EMAIL_PORT = 587 +EMAIL_HOST_USER = os.environ.get('DJANGO_EMAIL_USER') +EMAIL_HOST_PASSWORD = os.environ.get('DJANGO_EMAIL_PASSWORD') +DEFAULT_FROM_EMAIL = EMAIL_HOST_USER diff --git a/accounts/views.py b/accounts/views.py index 39ffb44..332476d 100644 --- a/accounts/views.py +++ b/accounts/views.py @@ -10,7 +10,7 @@ from django.core.urlresolvers import reverse from django.contrib.auth.forms import AuthenticationForm, UserCreationForm from django.contrib import auth from django.views.decorators.cache import never_cache - +from django.shortcuts import redirect # Create your views here. @@ -24,10 +24,10 @@ class RegisterView(FormView): user.save(True) return HttpResponseRedirect('/') - +@never_cache def LogOut(requests): - logout(request=requests) - return HttpResponseRedirect("/") + logout(request=requests, next_page='index') + return redirect('index') class LoginView(FormView): diff --git a/blog/views.py b/blog/views.py index 85490e5..45f3412 100644 --- a/blog/views.py +++ b/blog/views.py @@ -55,7 +55,7 @@ class ArticleListView(ListView): class IndexView(ArticleListView): def get_queryset(self): - article_list = Article.objects.filter(type='a',status='p') + article_list = Article.objects.filter(type='a', status='p') # for article in article_list: # article.body = article.body[0:settings.ARTICLE_SUB_LENGTH] @@ -228,8 +228,12 @@ def fileupload(request): @login_required def refresh_memcache(request): try: - result = os.popen(' service memcached restart ').readline() - return HttpResponse(result) + if request.user.is_superuser: + result = os.popen(' service memcached restart ').readline() + return HttpResponse(result) + else: + from django.http import HttpResponseForbidden + return HttpResponseForbidden() except Exception as e: return HttpResponse(e); diff --git a/comments/models.py b/comments/models.py index 464fac8..a398d95 100644 --- a/comments/models.py +++ b/comments/models.py @@ -1,16 +1,18 @@ from django.db import models from django.conf import settings - +from django.core.mail import send_mail from blog.models import Article +from django.core.mail import EmailMultiAlternatives +from django.contrib.sites.models import Site # Create your models here. class Comment(models.Model): - #url = models.URLField('地址', blank=True, null=True) - #email = models.EmailField('电子邮件', blank=True, null=True) + # url = models.URLField('地址', blank=True, null=True) + # email = models.EmailField('电子邮件', blank=True, null=True) - body = models.TextField('正文') + body = models.TextField('正文', max_length=300) created_time = models.DateTimeField('创建时间', auto_now_add=True) last_mod_time = models.DateTimeField('修改时间', auto_now=True) author = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='作者', on_delete=models.CASCADE) @@ -22,5 +24,38 @@ class Comment(models.Model): verbose_name = "评论" verbose_name_plural = verbose_name + def save(self, *args, **kwargs): + super().save(*args, **kwargs) + subject = '感谢您发表的评论' + site = Site.objects.get_current().domain + article_url = "https://{site}{path}".format(site=site, path=self.article.get_absolute_url()) + html_content = """ +

非常感谢您在本站发表评论

+ 您可以访问 + %s + 来查看您的评论, + 再次感谢您! +
+ 如果上面链接无法打开,请将此链接复制至浏览器。 + %s + """ % (article_url, self.article.title, article_url) + tomail = self.author.email + msg = EmailMultiAlternatives(subject, html_content, from_email='no-reply@lylinux.net', to=[tomail]) + + msg.content_subtype = "html" + + result = msg.send() + if self.parent_comment: + html_content = """ + 您在 %s 的评论
%s
收到回复啦.快去看看吧 +
+ 如果上面链接无法打开,请将此链接复制至浏览器。 + %s + """ % (article_url, self.article.title, self.parent_comment.body, article_url) + tomail = self.parent_comment.author.email + msg = EmailMultiAlternatives(subject, html_content, from_email='no-reply@lylinux.net', to=[tomail]) + msg.content_subtype = "html" + result = msg.send() + def __str__(self): return self.body diff --git a/comments/views.py b/comments/views.py index 627f523..5751e19 100644 --- a/comments/views.py +++ b/comments/views.py @@ -8,6 +8,7 @@ from django.views.generic.edit import FormView from django.http import HttpResponseRedirect from django.core.urlresolvers import reverse from django.contrib.auth import get_user_model +from django import forms class CommentPostView(FormView): @@ -17,11 +18,21 @@ class CommentPostView(FormView): def get(self, request, *args, **kwargs): article_id = self.kwargs['article_id'] url = reverse('blog:detail', kwargs={'article_id': article_id}) - return HttpResponseRedirect(url) + return HttpResponseRedirect(url + "#comments") def form_invalid(self, form): article_id = self.kwargs['article_id'] article = Article.objects.get(pk=article_id) + u = self.request.user + + if self.request.user.is_authenticated: + form.fields.update({ + 'email': forms.CharField(widget=forms.HiddenInput()), + 'name': forms.CharField(widget=forms.HiddenInput()), + }) + user = self.request.user + form.fields["email"].initial = user.email + form.fields["name"].initial = user.username return self.render_to_response({ 'form': form, @@ -38,7 +49,8 @@ class CommentPostView(FormView): email = form.cleaned_data['email'] username = form.cleaned_data['name'] - user = get_user_model().objects.create_user(username=username, email=email, password=None) + user = get_user_model().objects.create_user(username=username, email=email, password=None, + nikename=username) author_id = user.pk comment = form.save(False) diff --git a/templates/account/login.html b/templates/account/login.html index 0cfa3cf..a8c2d68 100644 --- a/templates/account/login.html +++ b/templates/account/login.html @@ -34,6 +34,7 @@

Create an account + Home Page

diff --git a/templates/comments/tags/comment_list.html b/templates/comments/tags/comment_list.html index 97dc8e2..d3dab08 100644 --- a/templates/comments/tags/comment_list.html +++ b/templates/comments/tags/comment_list.html @@ -1,12 +1,12 @@
{% load blog_tags %} {% load comments_tags %} -

{{ comment_count }} 条回复

+ {% comment %}

{{ comment_count }} 条回复

{% endcomment %} {% if article_comments %}