我在Django中使用Group模块。
我已经创建了视图GroupCreateView
和GroupUpdateView
,我可以在其中更新权限和组名称,但我还想将用户添加到组中。
现在我必须更新每个用户对象并设置它所属的组。我想以相反的方式做到这一点,我创建组并将用户添加到该组。
这是如何获得的?我想这就像group.user_set.add(user)
答案 0 :(得分:2)
我假设您要将新创建的用户自动添加到现有组 。如果我错了,请纠正我,因为你的问题没有说明。
以下是 views.py
中的内容from django.views.generic.edit import CreateView
from django.contrib.auth.models import User
from django.contrib.auth.models import Group
from django.core.urlresolvers import reverse
class UserCreate(CreateView):
model = User
fields = ['username'] #only expose the username field for the sake of simplicity add more fields as you need
#this one is called when a user has been created successfully
def get_success_url(self):
g = Group.objects.get(name='test') # assuming you have a group 'test' created already. check the auth_user_group table in your DB
g.user_set.add(self.object)
return reverse('users') #I have a named url defined below
在我的 urls.py :
中urlpatterns = [
url(r'list$', views.UserList.as_view(), name='users'), # I have a list view to show a list of existing users
]
我在Django 1.8中对此进行了测试(我确信它也适用于1.7)。我确认已在 auth_user_group 表中创建了组关系。
P.S。我还发现了这个:https://github.com/tomchristie/django-vanilla-views/tree/master,它可能对您的项目有用。