Django 用户自定义扩展抽象用户未出现在';认证';管理面板
我知道这个问题在堆栈上很常见,我已经尝试了许多答案 所以我的目标是扩展用户以添加一些自定义字段 在models.py中,我添加了以下内容Django 用户自定义扩展抽象用户未出现在';认证';管理面板,django,python-3.x,django-models,Django,Python 3.x,Django Models,我知道这个问题在堆栈上很常见,我已经尝试了许多答案 所以我的目标是扩展用户以添加一些自定义字段 在models.py中,我添加了以下内容 class MyUser(AbstractUser): bio = models.TextField(max_length=500, blank=True) location = models.CharField(max_length=30, blank=True) birth_date = models.DateField(null=Tru
class MyUser(AbstractUser):
bio = models.TextField(max_length=500, blank=True)
location = models.CharField(max_length=30, blank=True)
birth_date = models.DateField(null=True, blank=True)
def __str__(self): # __str__ for Python 3, __unicode__ for Python 2
return self.name
class Meta:
app_label = 'app_name'
在admin.py中,我添加了以下内容:
class CustomUserAdmin(UserAdmin):
model = MyUser
filter_horizontal = ('user_permissions', 'groups',)
admin.site.register(MyUser, CustomUserAdmin)
在settings.py中,我有以下内容:
AUTH_USER_MODEL = 'app_name.MyUser'
在URL.py中:
admin.autodiscover()
需要注意的是,我已经删除了所有迁移,并在这些更改后重新生成它们
app_name位于settings.py中的INSTALLED_APPS中
我还尝试添加form.py自定义创建和更改表单,如下所示,但未成功:
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm):
model = MyUser
fields = '__all__'
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = MyUser
fields = '__all__'
需要注意的是,在我的数据库中,用户模式是用新字段更新的!
但问题是它没有出现在管理面板部分
提前感谢您的帮助建议使用与默认用户
模型相关的OneToOne
来扩展它。尝试按照文档进行操作,看看是否有效。您从头开始创建了一个新的用户模型(),但似乎遗漏了许多必需的内容。您是否将
app\u name
添加到INSTALLED\u APPS
设置中?是:)我已更新了PostThank感谢您的帮助:)确实,一对一方法很有效,但它出现在管理窗格的自己部分。因此,我想扩展本机用户对象。您发布的另一个链接是扩展AbstractBaseUser,但这有点过分,因为我只想添加一些字段。所以AbstractUser扩展最合适。您是否实现了文档中描述的管理更改?他们注销默认的UserAdmin,并将其替换为一个新的UserAdmin,并将新字段作为内联字段。它仍应显示在索引中的auth
应用程序下方的组
上方。