有没有办法扩展内置的 Django Group 对象以添加类似于扩展用户对象的方式的附加属性?使用用户对象,您可以执行以下操作:
class UserProfile(models.Model):
user = models.OneToOneField(User)
并将以下内容添加到 settings.py 文件中
AUTH_PROFILE_MODULE = 'app.UserProfile'
这让你:
profile = User.objects.get(id=1).get_profile()
是否有任何等效于扩展组的方法?如果没有,我可以采取其他方法吗?
最佳答案
如果您只是对 Group 对象进行子类化,那么默认情况下它将创建一个新的数据库表,并且管理站点不会获取任何新字段。
您需要将新字段注入(inject)现有组:
if not hasattr(Group, 'parent'):
field = models.ForeignKey(Group, blank=True, null=True, related_name='children')
field.contribute_to_class(Group, 'parent')
要将方法添加到组,子类但将模型标记为代理:
class MyGroup(Group):
class Meta:
proxy = True
def myFunction(self):
return True
关于python - 如何扩展 Django Group 模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2181039/