我正在使用 django 来管理一个网站,其中像 post id、user id 这样的 id 以清晰的方式传递。例如,我可以拥有 /posts/1、/posts/2/
即使我检查当前用户是否可以阅读相关帖子,传递这样的参数是否真的安全,或者我应该执行 /posts/lkjfekj87Dokdz98/ 之类的操作,例如 /posts/1/ ?
使用 /post/1/ 调用的详细视图示例
class DetailView(generic.DetailView):
model = Post
def get_context_data(self, **kwargs):
context = super(generic.DetailView, self).get_context_data(**kwargs)
if context['post'] not in self.request.user.allowed_post:
raise PermissionDenied
return context