码迷,mamicode.com
首页 > 其他好文 > 详细

BBS小计

时间:2016-04-02 13:35:41      阅读:165      评论:0      收藏:0      [点我收藏+]

标签:

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

 

对于切换页面,无需写多个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小计

标签:

原文地址:http://www.cnblogs.com/liqxd/p/5347321.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!