如何扩展Django Group并仍然在Django用户中使用

Zam*_*ezi 4 python django django-models

我希望扩展Django集团的功能,因此我可以在集团上拥有额外的属性,例如集团主页的网址.像这样的东西:

class Organization(Group):
  url = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

但是,当使用此组织并将其添加到用户(通过使用org.user_set.add(user))时,我无法从用户访问url字段.当我这样做时,user.groups.all()它显示用户所在的组(而非组织)与我在组织中设置的名称相同org.那么我该如何向Group添加功能,但是可以通过我的用户信息访问它?

isk*_*rum 5

你有两个选择;

1)新模型;

class GroupProfile(models.Model):
    group = models.OneToOneField('auth.Group', unique=True)
    url = models.CharField(max_length=100)
Run Code Online (Sandbox Code Playgroud)

2)猴子补丁;

Group.add_to_class('url', models.CharField(max_length=100))
Run Code Online (Sandbox Code Playgroud)

在第二个选项中,您必须使用app southfor db migration.