gpt4 book ai didi

python - Django : how to Identify who is saving the model from program?

转载 作者:太空宇宙 更新时间:2023-11-04 03:58:44 26 4
gpt4 key购买 nike

我如何从 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()

关于python - Django : how to Identify who is saving the model from program?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16892253/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com