BBS小计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BBS小计相关的知识,希望对你有一定的参考价值。

论坛项目主要实现版块切换、发帖、评论等功能,这次作业中收获颇多以下进行记录。

 

对于切换页面,无需写多个url而是使用动态url,例如:

  url(r‘^categroy/(\d+)/$‘,views.category,name=‘category‘)

  其中name为url为别名

  对于每个传进来的url值,在后台使用models.Article.objects.filter(category_id = category_id)进行过滤以得到不同的版块。

  

判断用户是否登录:

  使用django原生的验证方式:{% if request.user.is_authenticated%}

  user使用的是django原生表:User,要想使用User表,需要与用户定义的表建立1对1关系。

  可以通过下列方法验证用户名和密码输入:    

    username = request.POST.get(‘username‘)
    password = request.POST.get(‘password‘)
    user = authenticate(username = username,password = password)

  原生的用户登录方法:

    login(request,user)

  原生的用户注销方法:

    login(request,user)

  这两个方法需要导入django的模块:

    from django.contrib.auth import authenticated,login,logout

 

CSRF:跨站请求伪造

  在POST提交表单时csrf会将请求当做伪造请求,从而页面出现403

  解决方法是:1:如果csrf检验,直接在settings中的middleware中注释掉csrf,不推荐

        2:在表单标签中加入{% csrf_token%},这样在render进行页面渲染时会自动检查提供给csrf相应的认证

 

表单中提交文件

  如果想在表单中提交文件,需要在form标签中加入enctype="multipart/form-data",在后台form获取数据时,要同时获取request.File

高级的textarea

  可以使用CKeditor插件进行编辑,使用方法很简单,1:导入ckeditor.js文件:2:在form中写一个textarea,id=‘sth’,3:写一个js将textarea替换为CKeditor:CKEDITOR.replace(‘sth‘);

 

自关联:

  在进行评论时有时要回复已有的评论,这就相当于自关联,自关联的写法如下:

    p = models.ForeignKey(‘self‘,related_name = ‘parent_comment‘) 

    self为自己,也可以使用表明,related_name 指定一个列命,只是不要和这个自关联列重名,例如不要=‘p‘

 

admin中更好地显示记录

  我们可以在admin中定义一个类,然后让相应的表以改方式来显示记录,例如:

  class ArticleAdmin(admin.ModelAdmin)

    list_display = (‘ip‘,‘name‘,‘port‘)

  admin.site.register(models.Article,ArticleAdmin)

  

 

 

以上是关于BBS小计的主要内容,如果未能解决你的问题,请参考以下文章

delphi 如何用reportbuilder 打印每页的小计

如何避免在小计范围的第一行添加新行以保护小计公式

MS ACCESS:从总计小计中排除主要组的小计

VBA添加具有可变范围的小计

包含 2 个条件的小计

表 Javascript 中的小计和总计数