当前位置: 首页 > Web前端 > CSS

Django20200424博客开发015

时间:2023-03-30 23:55:06 CSS

评论功能的实现方式是:第三方社交评论插件Django评论库:django-comment写代码实现(我们要使用的方法)首先需要创建一个评论模型:评论对象评论内容评论时间commenterpythonmanage.pystartappcommentmodels.py中的新评论模块:fromdjango.dbimportmodelsfromdjango.contrib.contenttypes.fieldsimportGenericForeignKeyfromdjango.contrib.contenttypes.modelsimportContentTypefromdjango.contrib.auth.modelsimportUser#在这里创建你的模型时间d=models.TextDateTimeField(auto_now_add=True)user=models.ForeignKey(User,on_delete=models.DO_NOTHING)writeadmin.pyfromdjango.contribimportadminfrom.modelsimportComment#Registeryourmodelshere.@admin.register(Comment)classCommentAdmin(admin.ModelAdmin):list_display=('content_object','text','comment_time','user')注册应用:settings迁移登录后台查看效果:评论浏览时一般需要显示评论和提交评论,所以需要写前端代码:但是考虑到评论需要权限,必须先登录才能评论.目的有3个:保证较低程度的垃圾评论降低评论门槛(第三方登录方案),也可以通知用户**pycharm技能:ctrl+shift+F:用于全局替换django文档地址:www.djangoproject.com**方法如下:blog/blog_detail.html提交评论区{%ifuser.is_ulathenticated%}已登录{%else%}不合逻辑{%csrf_token%}{%endif%}

评论列表区
注意:csrf会自动校验,需要加上{%csfr_token%}来验证(只有render可以,render_to_response会出错)在mysite/views.py中新建一个登录方法:#mysite/views.pyfromdjango.shortcutsimportrender,redirectfromdjango.contribimportauthdeflogin(request):username=request.POST.get('username','')password=request.POST.get('password','')user=auth.authenticate(request,username=username,password=password)如果用户isnotNone:auth.login(request,user)returnredirect('/')else:returnrender(request,'error.html',{'message':'用户名或密码不正确'})创建一个新的公共模板中的一个templateserror.html{%extends'base.html'%}{%loadstaticfiles%}{%blocktitle%}Mysite|error{%endblock%}{%blocknav_home_active%}active{%endblock%}{%blockcontent%}{{message}}{%endblock%}效果:登录效果:但是如果你你注销再查看博文,有问题:在madpecker中记录,并在mysite/urls.py中添加新路由:但现在登录以后还是不能编辑评论并提交