完善评论功能

sh_branch
车亮亮 9 years ago
parent 1629d09088
commit 02ea37086e

@ -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

@ -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):

@ -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);

@ -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 = """
<p>非常感谢您在本站发表评论</p>
您可以访问
<a href="%s" rel="bookmark">%s</a>
来查看您的评论
再次感谢您
<br />
如果上面链接无法打开请将此链接复制至浏览器
%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 = """
您在 <a href="%s" rel="bookmark">%s</a> 的评论 <br/> %s <br/> 收到回复啦.快去看看吧
<br/>
如果上面链接无法打开请将此链接复制至浏览器
%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

@ -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)

@ -34,6 +34,7 @@
<p class="text-center">
<a href="{% url "account:register" %}">Create an account</a>
<a href="/">Home Page</a>
</p>
</div> <!-- /container -->

@ -1,12 +1,12 @@
<section id="comments" class="themeform">
{% load blog_tags %}
{% load comments_tags %}
<h3 class="heading">{{ comment_count }} 条回复</h3>
{% comment %}<h3 class="heading">{{ comment_count }} 条回复</h3>{% endcomment %}
<ul class="comment-tabs group">
<li class="active"><a href="#commentlist-container"><i
class="fa fa-comments-o"></i>评论<span>{{ comment_count }}</span></a></li>
<li class=""><a href="#pinglist-container"><i class="fa fa-share"></i>引用<span>0</span></a></li>
{% comment %}<li class=""><a href="#pinglist-container"><i class="fa fa-share"></i>引用<span>0</span></a></li>{% endcomment %}
</ul>
{% if article_comments %}
<div id="commentlist-container" class="comment-tab" style="display: block;">

Loading…
Cancel
Save