我如何从 Django 代码中检查当前正在保存模型的用户?
我需要抛出验证错误或从中向他分配一些权限。
请您参考如下方法:
假设您从 View 函数执行 model.save(),您可以使用 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()
