Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django admin的auth部分中没有用户链接_Python_Django_Authorization - Fatal编程技术网

Python Django admin的auth部分中没有用户链接

Python Django admin的auth部分中没有用户链接,python,django,authorization,Python,Django,Authorization,我试图实现一个自定义用户模型,但是在Django管理员网站的auth urllocalhost:8000/admin/auth/下,我的模型没有显示出来 我在下面的链接中找到了整个问题的答案,但是当我自己尝试实现它时,我仍然没有在Django管理员的auth部分看到用户 我做错了什么 models.py from django.contrib.auth.models import AbstractUser class CustomUser(AbstractUser): pass

我试图实现一个自定义用户模型,但是在Django管理员网站的auth url
localhost:8000/admin/auth/
下,我的模型没有显示出来

我在下面的链接中找到了整个问题的答案,但是当我自己尝试实现它时,我仍然没有在Django管理员的auth部分看到用户

我做错了什么

models.py

from django.contrib.auth.models import AbstractUser


class CustomUser(AbstractUser):
    pass
管理员

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中创建自己的组模型作为代理对象
  • 从django.contrib.auth.models导入组作为DjangoGroup
    ...
    班级组(DjangoGroup):
    类元:
    proxy=True
    详细名称=(组)
    详细名称复数=(组)
    
  • (un)在
    admin.py
  • 从django.contrib.auth.admin导入GroupAdmin作为DjangoGroupAdmin
    从django.contrib.auth.models导入组作为DjangoGroup
    从。模型导入自定义用户,组
    ...
    admin.site.register(CustomUser,CustomUserAdmin)
    管理员站点注销(DjangoGroup)
    admin.site.register(组,DjangoGroupAdmin)
    
    什么是u?它现在在同一个管理部分下列出了组和用户。但它对auth没有任何作用,它实际上从url
    localhost:8000/admin/auth/
    中删除组,因此呈现为404_u,用于翻译,您可以只使用字符串。在我的解决方案中,您不再使用django auth应用程序,因为其目的是将用户和组放置在您自己的应用程序中。我找不到合适的解决方案,可以在django分区/应用程序(如djangos auth应用程序)中显示自己的模型。整个问题的存在是因为django将一个应用程序的模型分组在一起,而您试图将您的模型分组到另一个应用程序中。