如何解决Django admin的auth部分中没有用户链接
我正在尝试实现自定义用户模型,但是在Django管理网站的auth url localhost:8000/admin/auth/
下,我的模型没有显示。
我在下面的链接中找到了整个问题的答案,但是当我自己尝试实现该问题时,我仍然在Django admin的auth部分中看不到用户。
No “Users” link in “Auth” section of Django admin site
我在做什么错了?
models.py
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
pass
admin.py
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm,CustomUserChangeForm
CustomUser = get_user_model()
class CustomUserAdmin(UserAdmin):
form = CustomUserChangeForm
add_form = CustomUserCreationForm
model = CustomUser
list_display = (
"email","username",)
fieldsets = (
(None,{"fields": ("email","password")}),("Permissions",{"fields": ("is_admin","groups","user_permissions")}),)
admin.site.register(CustomUser,CustomUserAdmin)
forms.py
from django.contrib.auth import get_user_model
from django.contrib.auth.forms import UserCreationForm,UserChangeForm
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = get_user_model()
fields = ("email","username")
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = get_user_model()
fields = ("email","username")
解决方法
我遇到了同样的问题:
- 创建了自己的用户模型
- 在管理员中,组和我的用户模型未在同一(身份验证)部分列出
我的解决方案基本上是将django组放入我的应用程序中以使其显示在同一部分中,因为django为每个应用程序创建了管理部分。
- 在
models.py
中创建自己的组模型作为代理对象
from django.contrib.auth.models import Group as DjangoGroup
...
class Group(DjangoGroup):
class Meta:
proxy = True
verbose_name = _('group')
verbose_name_plural = _('groups')
- (取消)在
admin.py
中注册模型
from django.contrib.auth.admin import GroupAdmin as DjangoGroupAdmin
from django.contrib.auth.models import Group as DjangoGroup
from .models import CustomUser,Group
...
admin.site.register(CustomUser,CustomUserAdmin)
admin.site.unregister(DjangoGroup)
admin.site.register(Group,DjangoGroupAdmin)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。