2

如何从 django 代码中检查当前正在保存模型的用户?

我需要抛出验证错误或从中分配一些权限给他。

4

1 回答 1

2

假设您执行model.save()from a view 函数,您可以使用request.user.

from django.contrib.auth.models import Permission

def myview(request):
    model = Model(...)
    model.save()
    permission = Permission.objects.get(codename="...")
    request.user.user_permissions.add(permission)

编辑:以表格形式访问请求

从表单验证代码获取请求的最简单方法可能是在表单实例上设置一个属性:

def myview(request):
    ...
    form = SomeForm(...)
    form.request = request

在您的表单验证逻辑中,您现在可以使用它self.request来访问用户:

class SomeForm(...):
    def clean_somefield(self):
        data = self.cleaned_data["somefield"]
        if self.request.user....:
             raise ValidationError()
于 2013-06-03T08:06:57.383 回答