如何在 UpdateView django 中获取 request.user

how to get request.user in UpdateView django

我想将更新视图限制为特定 user.How 我知道哪个用户请求更新吗 view.I 我是 django.Thanks 的新手

您可以覆盖 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 参数

指定权限(或可迭代的权限)

To set user specific permissions you can read: https://docs.djangoproject.com/en/dev/topics/auth/default/#permissions-and-authorization