如何扩展Django Group并在Django User中使用
我想扩展Django中“组”的功能,让组可以有额外的属性,比如一个指向组主页的链接。就像这样:
class Organization(Group):
url = models.CharField(max_length=100)
但是,当我使用这个组织并把它添加到一个用户时(通过使用 org.user_set.add(user)
),我就无法从用户那里访问到这个链接字段。当我执行 user.groups.all()
时,它显示用户在一个与我设置的组织 org
同名的组里(而不是组织)。那么,我该如何给组添加功能,同时又能从用户信息中访问到呢?
1 个回答
6
你有两个选择:
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
这样的应用程序来进行数据库迁移。