我希望扩展Django小组的功能,因此我可以在小组上拥有额外的属性,例如群组主页的网址。像这样:
class Organization(Group):
url = models.CharField(max_length=100)
但是,当使用此组织并将其添加到用户时(使用org.user_set.add(user)
),我无法从用户访问url字段。当我user.groups.all()
时,它会显示用户所在的组(而不是组织)与我在组织org
上设置的名称相同。那么我该如何向Group添加功能,但是可以通过我的用户信息访问它?
答案 0 :(得分:5)
你有两个选择;
1)新模型;
class GroupProfile(models.Model):
group = models.OneToOneField('auth.Group', unique=True)
url = models.CharField(max_length=100)
2)猴子补丁;
Group.add_to_class('url', models.CharField(max_length=100))
在第二个选项中,您必须使用south
之类的应用程序进行数据库迁移。