繁体   English   中英

Django admin:扩展现有用户 model。 不在管理站点中显示

[英]Django admin : extending the existing user model. doesn't show in admin site

我是 Django 的初学者。

使用:Django 2.2.6 和 python 3.6.3

这是我扩展现有用户 model 的问题。 我读过这个https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#extending-the-existing-user-model我想做的是

  1. 使用默认身份验证。
  2. 扩展用户 model。
  3. 查看/管理我在 /admin 中扩展的 model

但是我看不到我在 /admin 中扩展的内容。 我做了以下事情:

用户模型.py:

from django.db import models
from django.contrib.auth.models import User

class UserInfo(models.Model):
    user = models.OneToOneField(User, unique = True, verbose_name = '學號', on_delete = models.CASCADE)
    sNickName = models.CharField(max_length = 16, verbose_name = "暱稱")
    iArticleNumber = models.PositiveIntegerField(verbose_name = "文章數")  # from 0 to 2,147,483,647
    sShortIntroduction = models.TextField(verbose_name = "短自介")

创建一对一 model 参考用户

用户.admin.py:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
from django.contrib.auth.models import User

from user.models import UserInfo

class UserInfoInline(admin.StackedInline):
    model = UserInfo
    can_delete = False
    verbose_name_plural = 'UserInfo'

class UserAdmin(BaseUserAdmin):
    inline = [UserInfoInline, ]

admin.site.unregister(User)
admin.site.register(User, UserAdmin)

在用户中添加用户信息

而我的/admin 显示是这样的:这个页面和我没有在user.admin.py 中添加更改一样。 在这里找不到“用户信息”。

我期望的是,当我单击特定用户时,例如图片中的“410431135”,我可以查看和管理我创建的用于扩展 auth.models.User 的“UserInfo”

注意:我通过 shell 在特定的 user.userinfo 中添加了一些数据

谢谢。 第一次在这里提问。

在 admin.py 文件中尝试这些更改

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

class UserInfoInline(admin.StackedInline):
    model = UserInfo
    can_delete = False
    verbose_name_plural = 'UserInfo'

class UserAdmin(UserAdmin):
    inlines = (UserInfoInline,)
    list_display = ('username', 'first_name', 'last_name','UserInfo')

admin.site.unregister(User)
admin.site.register(User, UserAdmin)

内联

class UserAdmin(BaseUserAdmin):
    inlines = [UserInfoInline, ]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM