Django: Поля пользовательской модели не отображаются в админке Django - PullRequest
0 голосов
/ 17 мая 2018

Я пытаюсь добавить несколько дополнительных полей в модель django.contrib.auth.models User. Я буду использовать эту пользовательскую модель на протяжении всего проекта. Я использовал AbstractUser для добавления полей name и contact.

class User(AbstractUser):
    name = models.CharField(_('Name of User'), blank=True, max_length=255)
    contact = models.CharField(max_length=20, blank=True)
    def __str__(self):
        return self.username

В моем settings.py я добавил к apps.authentication, который является моим приложением:

INSTALLED_APPS = [ 'apps.authentication', ...]

Я также указал свой AUTH_USER_MODEL:

AUTH_USER_MODEL = 'authentication.User'

Затем я запустил миграцию, и она сработала (я проверил свою локальную базу данных; были созданы новые таблицы). Однако, когда я получаю к нему доступ через администратора Django, поля name и contact нигде не было найдено. Как сделать так, чтобы поля появлялись?

enter image description here

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Я думаю, что часть, которую вам не хватает, это регистрация вашей пользовательской модели в приложении admin.py:

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

admin.site.register(User, UserAdmin)

(взято из https://docs.djangoproject.com/en/2.0/topics/auth/customizing/#specifying-a-custom-user-model)

0 голосов
/ 17 мая 2018

Вы можете добавить класс UserAdmin по умолчанию с пользовательскими полями , добавив следующее к admin.py файлу:

from django.contrib.auth.admin import UserAdmin

UserAdmin.fieldsets += ('Custom fields set', {'fields': ('name', 'contact')}),
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...