用户自定义扩展AbstractUser不会出现在“身份验证”管理面板中

时间:2019-07-16 16:30:27

标签: django python-3.x django-models

我知道此问题在堆栈上很常见,我已经尝试了许多答案Like this one, and more alike

所以我的目标是扩展用户以添加一些自定义字段。

在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=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'

在urls.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__'

要注意的是,在我的数据库中,用户模式已使用新字段更新! Database screenshot

但是问题是它没有出现在“管理面板”部分中 admin pannel screenshot

预先感谢您的帮助

1 个答案:

答案 0 :(得分:0)

docs建议对默认的OneToOne模型使用User关系来扩展它。尝试遵循文档,看看是否有效。
您已经从头创建了新的用户模型(click),但是似乎遗漏了很多必需的东西。