我最初只扩展了 Group 模型,虽然我让额外的字段正常工作,但当我切换回 auth-user 模型时,我最终得到了不一致的结果:
group1 = MyGroup(..)
user = group1.user_set.all()[0]
group2 = user.groups.all()[0]
group1 == group2 #(False!)
type(group1) #MyGroup..
type(group2) #Group..
我的下一个想法是扩展 auth.User 和 auth.Group 模型。
示例结构:
from django.contrib.auth.models import User As DjangoUser
from django.contrib.auth.models import Group As DjangoGroup
class MyGroup(DjangoGroup):
extra1 = models.CharField(..)
class MyUser(DjangoUser):
extra1 = models.CharField(..)
这可能吗?我看到了一个错误报告,说明它已在此处修复。但是,我没有看到实现此目的的正确方法的示例,也不清楚这部分是否在错误修复后是必要的:
manager = UserManager()
class MyUser(DjangoUser):
signature = forms.CharField()
post_count = forms.IntegerField()
objects = manager
_default_manager = manager
这种行为的任何想法/例子?我试图在用户模型中重新定义“组”链接,但这导致了验证错误。理想情况下,我希望能够运行上面的示例并拥有 group1 == group2 和 type(group2) == type(MyGroup())