【问题标题】:Using Django's CBV, how can I check if request.user == my_model.user?使用 Django 的 CBV,我如何检查 request.user == my_model.user?
【发布时间】:2012-09-05 21:13:57
【问题描述】:

当我使用基于函数的视图时,我经常这样做:

def my_view(request, username):
  user = get_object_or_404(User, username = username)
  if user != request.user:
    return HttpRequestForbidden()

此代码确保只有用户 john 可以访问像 /users/john/edit/ 这样的页面。

如何使用基于类的视图来做同样的事情?

【问题讨论】:

    标签: django


    【解决方案1】:

    我的问题似乎与Example of Django Class-Based DeleteView重复

    这是怎么做的:

    def get_object(self, queryset=None):
        """ Hook to ensure object is owned by request.user. """
        obj = super(MyDeleteView, self).get_object()
        if not obj.owner == self.request.user:
            raise Http404
        return obj
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-15
      • 1970-01-01
      • 2021-03-03
      • 2016-01-10
      • 2021-11-01
      • 2019-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多