Администратор Django: расширение существующей модели пользователя. не отображается на сайте администратора - PullRequest
0 голосов
/ 24 октября 2019

Я очень новичок в Джанго.

Использование: Django 2.2.6 с python 3.6.3

Вот мои проблемы с расширением существующей пользовательской модели. Я прочитал это https://docs.djangoproject.com/en/2.2/topics/auth/customizing/#extending-the-existing-user-model, что я хотел сделать, это

  1. использовать аутентификацию по умолчанию.
  2. расширяет модель пользователя.
  3. видеть / управлятьмодель, которую я расширил в / admin

Однако я не вижу, что я расширил в / admin. Я сделал следующее:

user.models.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 = "短自介")

создайте модель один к одному, обратитесь к User

user.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)

добавить UserInfo в User

И мой / admin выглядит так: Эта страница такая же, как я не добавлял изменения в user.admin.py. я не могу найти здесь «UserInfo».

Я ожидаю, что когда я нажму на конкретного пользователя, например «410431135» на картинке, я смогу увидеть и управлять «UserInfo», которое я создал для расширения аутентификации. models.User

Примечание: я добавил некоторые данные в определенный user.userinfo с помощью оболочки

Спасибо! впервые задайте вопрос здесь.

Ответы [ 2 ]

2 голосов
/ 24 октября 2019

попробуйте эти изменения в файле 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)
1 голос
/ 24 октября 2019

inlines

class UserAdmin(BaseUserAdmin):
    inlines = [UserInfoInline, ]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...