django 将用户分配到特定数据库的组

jmp7cifd  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(85)

有谁知道如何将用户分配到一个组(到一个特定的数据库)?
我知道如何读取/创建特定数据库的记录,但不知道如何创建特定数据库的相关表记录。Django官方文档对此并不清楚。这种情况下的语法是什么?

from django.contrib.auth.models import User
from django.contrib.auth.models import Group

user = User.objects.using('db').get(pk=1) 
admin_group = Group.objects.using('db').get(name='admin') 
# Below line does not work. 
user.groups.add(admin_group)

字符串
最后一行似乎并没有真正创建任何记录到auth_user_groups表。相反,它创建记录到默认数据库。如何在最后一行指定数据库?

0ejtzxu1

0ejtzxu11#

在Django中,要将用户分配到特定数据库中的特定组,您使用using方法来指定数据库是正确的。您提供的代码几乎是正确的。以下是将用户分配到特定数据库中的特定组的语法:

from django.contrib.auth.models import User
from django.contrib.auth.models import Group

user = User.objects.using('db').get(pk=1)  # Get the user from the specific database 'db'
admin_group = Group.objects.using('db').get(name='admin')  # Get the group from the same database 'db'

# Assign the user to the group within the specified database
user.groups.add(admin_group)

字符串
这里要记住的关键点是using('db')方法同时用于User对象和Group对象,确保从同一个指定的数据库'db'中检索用户和组。
user.groups.add(admin_group)行将用户添加到指定的组。通过在User.objects.using('db')的上下文中使用该行,它将对指定的数据库执行此操作。
请确保在Django设置中正确配置了引用的数据库(本例中为'db'),以确保在预期的数据库上执行数据操作。

相关问题