diff --git a/blog/context_processors.py b/blog/context_processors.py index e1355d1..73e3088 100644 --- a/blog/context_processors.py +++ b/blog/context_processors.py @@ -17,7 +17,7 @@ def seo_processor(requests): logger.info('set processor cache.') setting = get_blog_setting() value = { - 'SITE_NAME': setting.sitename, + 'SITE_NAME': setting.site_name, 'SHOW_GOOGLE_ADSENSE': setting.show_google_adsense, 'GOOGLE_ADSENSE_CODES': setting.google_adsense_codes, 'SITE_SEO_DESCRIPTION': setting.site_seo_description, @@ -30,13 +30,14 @@ def seo_processor(requests): type='p', status='p'), 'OPEN_SITE_COMMENT': setting.open_site_comment, - 'BEIAN_CODE': setting.beiancode, - 'ANALYTICS_CODE': setting.analyticscode, + 'BEIAN_CODE': setting.beian_code, + 'ANALYTICS_CODE': setting.analytics_code, "BEIAN_CODE_GONGAN": setting.gongan_beiancode, "SHOW_GONGAN_CODE": setting.show_gongan_code, "CURRENT_YEAR": timezone.now().year, "GLOBAL_HEADER": setting.global_header, "GLOBAL_FOOTER": setting.global_footer, + "COMMENT_NEED_REVIEW": setting.comment_need_review, } cache.set(key, value, 60 * 60 * 10) return value diff --git a/blog/migrations/0003_blogsettings_comment_need_review.py b/blog/migrations/0003_blogsettings_comment_need_review.py new file mode 100644 index 0000000..e9f5502 --- /dev/null +++ b/blog/migrations/0003_blogsettings_comment_need_review.py @@ -0,0 +1,17 @@ +# Generated by Django 4.2.1 on 2023-05-09 07:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ('blog', '0002_blogsettings_global_footer_and_more'), + ] + + operations = [ + migrations.AddField( + model_name='blogsettings', + name='comment_need_review', + field=models.BooleanField(default=False, verbose_name='评论是否需要审核'), + ), + ] diff --git a/blog/migrations/0004_rename_analyticscode_blogsettings_analytics_code_and_more.py b/blog/migrations/0004_rename_analyticscode_blogsettings_analytics_code_and_more.py new file mode 100644 index 0000000..ceb1398 --- /dev/null +++ b/blog/migrations/0004_rename_analyticscode_blogsettings_analytics_code_and_more.py @@ -0,0 +1,27 @@ +# Generated by Django 4.2.1 on 2023-05-09 07:51 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ('blog', '0003_blogsettings_comment_need_review'), + ] + + operations = [ + migrations.RenameField( + model_name='blogsettings', + old_name='analyticscode', + new_name='analytics_code', + ), + migrations.RenameField( + model_name='blogsettings', + old_name='beiancode', + new_name='beian_code', + ), + migrations.RenameField( + model_name='blogsettings', + old_name='sitename', + new_name='site_name', + ), + ] diff --git a/blog/models.py b/blog/models.py index 1992b90..59e72c6 100644 --- a/blog/models.py +++ b/blog/models.py @@ -295,7 +295,7 @@ class SideBar(models.Model): class BlogSettings(models.Model): """blog的配置""" - sitename = models.CharField( + site_name = models.CharField( "网站名称", max_length=200, null=False, @@ -325,13 +325,13 @@ class BlogSettings(models.Model): open_site_comment = models.BooleanField('是否打开网站评论功能', default=True) global_header = models.TextField("公共头部", null=True, blank=True, default='') global_footer = models.TextField("公共尾部", null=True, blank=True, default='') - beiancode = models.CharField( + beian_code = models.CharField( '备案号', max_length=2000, null=True, blank=True, default='') - analyticscode = models.TextField( + analytics_code = models.TextField( "网站统计代码", max_length=1000, null=False, @@ -345,13 +345,15 @@ class BlogSettings(models.Model): null=True, blank=True, default='') + comment_need_review = models.BooleanField( + '评论是否需要审核', default=False, null=False) class Meta: verbose_name = '网站配置' verbose_name_plural = verbose_name def __str__(self): - return self.sitename + return self.site_name def clean(self): if BlogSettings.objects.exclude(id=self.id).count(): diff --git a/blog/templatetags/blog_tags.py b/blog/templatetags/blog_tags.py index c59498e..64925e8 100644 --- a/blog/templatetags/blog_tags.py +++ b/blog/templatetags/blog_tags.py @@ -88,7 +88,7 @@ def load_breadcrumb(article): from djangoblog.utils import get_blog_setting blogsetting = get_blog_setting() site = get_current_site().domain - names.append((blogsetting.sitename, '/')) + names.append((blogsetting.site_name, '/')) names = names[::-1] return { diff --git a/comments/tests.py b/comments/tests.py index c34eb5b..d503d0a 100644 --- a/comments/tests.py +++ b/comments/tests.py @@ -6,7 +6,6 @@ from accounts.models import BlogUser from blog.models import Category, Article from comments.models import Comment from comments.templatetags.comments_tags import * -from djangoblog.utils import get_current_site from djangoblog.utils import get_max_articleid_commentid @@ -16,6 +15,10 @@ class CommentsTest(TestCase): def setUp(self): self.client = Client() self.factory = RequestFactory() + from blog.models import BlogSettings + value = BlogSettings() + value.comment_need_review = True + value.save() def update_article_comment_status(self, article): comments = article.comment_set.all() @@ -24,7 +27,6 @@ class CommentsTest(TestCase): comment.save() def test_validate_comment(self): - site = get_current_site().domain user = BlogUser.objects.create_superuser( email="liangliangyy1@gmail.com", username="liangliangyy1", diff --git a/comments/views.py b/comments/views.py index b4cf4ca..8ad0fe5 100644 --- a/comments/views.py +++ b/comments/views.py @@ -45,7 +45,10 @@ class CommentPostView(FormView): raise ValidationError("该文章评论已关闭.") comment = form.save(False) comment.article = article - + from djangoblog.utils import get_blog_setting + settings = get_blog_setting() + if not settings.comment_need_review: + comment.is_enable = True comment.author = user if form.cleaned_data['parent_comment_id']: diff --git a/djangoblog/blog_signals.py b/djangoblog/blog_signals.py index 1b146bd..393f441 100644 --- a/djangoblog/blog_signals.py +++ b/djangoblog/blog_signals.py @@ -9,11 +9,11 @@ from django.core.mail import EmailMultiAlternatives from django.db.models.signals import post_save from django.dispatch import receiver +from comments.models import Comment +from comments.utils import send_comment_email from djangoblog.spider_notify import SpiderNotify from djangoblog.utils import cache, expire_view_cache, delete_sidebar_cache, delete_view_cache from djangoblog.utils import get_current_site -from comments.models import Comment -from comments.utils import send_comment_email from oauth.models import OAuthUser logger = logging.getLogger(__name__) @@ -107,7 +107,7 @@ def model_post_save_callback( delete_sidebar_cache() delete_view_cache('article_comments', [str(instance.article.pk)]) - _thread.start_new(send_comment_email, (instance,)) + _thread.start_new_thread(send_comment_email, (instance,)) if clearcache: cache.clear() diff --git a/djangoblog/utils.py b/djangoblog/utils.py index 9d722e3..160f9b8 100644 --- a/djangoblog/utils.py +++ b/djangoblog/utils.py @@ -152,7 +152,7 @@ def get_blog_setting(): from blog.models import BlogSettings if not BlogSettings.objects.count(): setting = BlogSettings() - setting.sitename = 'djangoblog' + setting.site_name = 'djangoblog' setting.site_description = '基于Django的博客系统' setting.site_seo_description = '基于Django的博客系统' setting.site_keywords = 'Django,Python' @@ -161,9 +161,10 @@ def get_blog_setting(): setting.sidebar_comment_count = 5 setting.show_google_adsense = False setting.open_site_comment = True - setting.analyticscode = '' - setting.beiancode = '' + setting.analytics_code = '' + setting.beian_code = '' setting.show_gongan_code = False + setting.comment_need_review = False setting.save() value = BlogSettings.objects.first() logger.info('set cache get_blog_setting') diff --git a/requirements.txt b/requirements.txt index b9badff..9489a06 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,6 @@ coverage==7.2.2 bleach==6.0.0 -Django==4.1.7 +Django==4.2.1 django-compressor==4.3.1 django-haystack==3.2.1 django-ipware==5.0.0 @@ -13,16 +13,14 @@ jieba==0.42.1 jsonpickle==3.0.1 Markdown==3.4.3 mysqlclient==2.1.1 -Pillow==9.4.0 -Pygments==2.14.0 +Pillow==9.5.0 +Pygments==2.15.1 python-logstash==0.4.8 python-slugify==8.0.1 -pytz==2023.2 -raven==6.10.0 -requests==2.28.2 -urllib3==1.26.15 +pytz==2023.3 +requests==2.30.0 WeRoBot==1.13.1 Whoosh==2.7.4 user-agents==2.2.0 -redis==4.5.4 -openai==0.27.2 +redis==4.5.5 +openai==0.27.6 diff --git a/templates/comments/tags/post_comment.html b/templates/comments/tags/post_comment.html index 8a4fc48..3ae5a27 100644 --- a/templates/comments/tags/post_comment.html +++ b/templates/comments/tags/post_comment.html @@ -15,7 +15,11 @@
{{ form.parent_comment_id }}