Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将新列添加到权限表_Python_Django_Authentication_Permissions - Fatal编程技术网

Python 如何将新列添加到权限表

Python 如何将新列添加到权限表,python,django,authentication,permissions,Python,Django,Authentication,Permissions,我是django new bay,我做了很多搜索,但没有结果 我需要将客户端id添加到django权限模型(保存和检索),因此在保存用户权限时,客户端id应与权限一起保存,在使用has perm时,应检查当前用户对当前客户端id的权限 添加示例: user.user_permissions.add(permiObject, request.session['ClientId']) 在模板中,如果我选中: {%if perms.app\u name.perm\u code%} 此检查应针对当前客

我是django new bay,我做了很多搜索,但没有结果

我需要将客户端id添加到django权限模型(保存和检索),因此在保存用户权限时,客户端id应与权限一起保存,在使用has perm时,应检查当前用户对当前客户端id的权限

添加示例:

user.user_permissions.add(permiObject, request.session['ClientId'])
在模板中,如果我选中:
{%if perms.app\u name.perm\u code%}
此检查应针对当前客户端ID

Django权限模型字段为:名称、内容类型、代码名

我需要这样的答案::名称、内容类型、代码名、客户id

我不愿意给出这样的答案,因为这不是对你的直接问题的回答,但它看起来确实像一个问题

如果我理解正确,您希望为每个特定于每个客户端ID的用户添加权限

Django权限背后的想法是,它们应该在迁移时创建,即在服务器开始运行之前创建。这里您添加了一些不自然的内容,客户端是在运行时添加的,因此您还需要在运行时修改权限。看来Django权限不是您所需要的

如果我是你,我会做的只是为我自己的权限添加一个模型,并通过外键将其连接到用户

例如(伪代码):

运行迁移,然后向某些用户添加新权限:

 user.mypermission_set.create(name="write", client="123")
 user.mypermission_set.filter(name="write", client="123").exists()
以及测试用户是否具有权限:

 user.mypermission_set.create(name="write", client="123")
 user.mypermission_set.filter(name="write", client="123").exists()
所以,如果我理解正确的话,希望这能有所帮助,不是你想要的方式,而是提供相同的功能


PS:也许你必须定义一个自定义用户模型,不确定Django是否会简单地接受使用标准用户模型的
mypermission\u set
,但没有测试它。

看看
Django对象权限
:听起来你好像误用了permissions对象。你想达到什么目标?用户和客户端ID之间的连接?也就是说,用户是客户端,只能看到属于他的信息?或者将多个客户端连接到用户,就像用户是多个客户端的管理者,并且只能看到与它们相关的信息一样?无论哪种方式,修改用户模型、向其中添加客户机ID(或客户机ID列表)似乎更合理,而不是添加permissions类。您可以在这里看到一个示例:@YuriNudelman,您好,感谢您关注我有一个具有单一数据库架构的多租户(客户端)系统,我想在每个tenant(客户端)中区分用户权限