【问题标题】:how to get request.user in UpdateView django如何在 UpdateView django 中获取 request.user
【发布时间】:2018-05-29 17:15:36
【问题描述】:

我想将更新视图限制为特定用户。我怎么知道哪个用户请求了更新视图。我是 django 的新手。提前致谢

【问题讨论】:

标签: django django-views django-class-based-views


【解决方案1】:

你可以覆盖UpdateView的dispatch方法

class ExampleUpdate(UpdateView):

    model = Example
    form_class = ExampleUpdateForm
    template_name = 'path/to/example.html'

    def dispatch(self, request, *args, **kwargs):
        # here you can make your custom validation for any particular user
        if not request.user.is_superuser:
            raise PermissionDenied()
        return super().dispatch(request, *args, **kwargs)

或者你也可以使用PermissionRequiredMixin

from django.contrib.auth.mixins import PermissionRequiredMixin

class MyView(PermissionRequiredMixin, UpdateView):
    permission_required = 'aoo_name.can_update'

这个 mixin 就像 permission_required 装饰器一样,检查访问视图的用户是否拥有所有给定的权限。您应该使用 permission_required 参数指定权限(或可迭代的权限)

要设置用户特定的权限,您可以阅读: https://docs.djangoproject.com/en/dev/topics/auth/default/#permissions-and-authorization

【讨论】:

    猜你喜欢
    • 2013-11-17
    • 2015-11-26
    • 2011-05-04
    • 1970-01-01
    • 2015-07-24
    • 2017-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多