我想创建像Programmers
,Designers
,Managers
这样的用户群。我不是在谈论基于权限的群组。即,
我正在从django admin创建一个新的News
对象。 target_group
模型中有一个News
字段。
我想将一些用户添加到此新闻对象中。如果我从创建表单中选择Programmers
,则应添加我添加到Programmers
组的所有用户。这必须像Many2ManyField
。但是,我想选择包含一些用户列表的组,而不是选择用户。
我认为django admin中的默认Groups
标签不提供这样的内容。
任何提示或帮助都会很棒。
谢谢。
答案 0 :(得分:1)
# models.py
class News(models.Model):
group = models.ForeignKey(Group)
users = models.ManyToManyField(User)
# forms.py
class NewsAdminForm(forms.ModelForm):
class Meta:
model = News
def __init__(self, *args, **kwargs):
super(News, self).__init__(*args, **kwargs)
if self.instance.group is not None:
# here self.instance.group is need you group (programmers, managers etc.)
users_queryset = User.objects.filter(groups=self.instance.group)
self.filelds['users'].choices = [(u.id, u.username) for u in users_queryset)
# admin.py
class NewsAdmin(admin.ModelAdmin):
form = NewsAdminForm