簡體   English   中英

Django admin 的 auth 部分中沒有用戶鏈接

[英]No user link in auth section of Django admin

我正在嘗試實現自定義用戶模型,但是在 Django 管理網站的 auth url localhost:8000/admin/auth/下,我的模型沒有顯示出來。

我在下面的鏈接中找到了整個問題的答案,但是當我自己嘗試實現它時,我仍然沒有在 Django 管理員的 auth 部分看到用戶。

Django 管理站點的“Auth”部分中沒有“Users”鏈接

我在這里做錯了什么?

模型.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)

表格.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")

我遇到了同樣的問題:

  1. 創建了我自己的用戶模型
  2. 在管理員中,組和我的用戶模型未列在同一 (auth) 部分中

我的解決方案基本上是將 django 組放入我的應用程序中,使其顯示在同一部分中,因為 django 為每個應用程序創建了管理部分。

  1. 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')
  1. (取消)在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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM