上篇博文《为Pythonic论坛添加一个“专题”功能》,在模板的层次上对发帖进行了限制。也就是根据用户是否拥有权限来决定是否显示发帖框。
但是自从这么“投机取巧”的写完模板后,整夜辗转反侧,不知道用户能否通过其它节点在不能够发帖的节点本地添加发帖框实现发帖。
最终,我还是觉得不靠谱…需要在服务端也进行下验证。简单的处理,终于填了坑
翻看apps opicviews.py文件找到def topic_create(request, node_slug):函数定义。
if node.category.name == u"父节点名称": if not request.user.is_staff: raise Http404
如此即可判断用户是否发帖到指定的节点,并且根据用户权限判断是否继续进行保存
过程中遇到点点问题。最开始把request.user.is_staff写成request.user.is_staff()导致报错“’bool’ object is not callable”
还有就是比较的时候”父节点名称”前面没加u,导致比较不成功。后来想到是编码的问题。
“纸上得来终觉浅 绝知此事要躬行”——看书的时候是看过的,但是自己写就会忘记这些细节。
OK,就先这样,毕竟坑填了