我在做一个在线日记的网站,遇到了一个问题,就是限制已经登陆的用户的权限,让他们不能看到其他用户的日记。
上代码:
1 def hide(self, **kwargs): 2 user_id = int(self.request.user.id) 3 4 pk = int(self.kwargs['dpk']) 5 6 if pk == user_id: 7 hide = False 8 else: 9 ab_user = User.objects.get(pk=self.kwargs['dpk']) 10 hide = ab_user.profile.hide 11 12 return hide
url中的dpk参数要通过 self.kwargs["dpk"]来获取,而且dpk是一个字符串,通过强制类型转换把dpk 和user.id改成 int型来比较。
在模版中调用时要用到{{ view.hide }}
第10行中利用onetoonefield中定义的related_name就可以调用UserProfile中的数据了。
这点代码搞了好长时间啊。