Я хочу создать пользовательскую модель пользователя, используя django.contrib.auth.models.AbstractUser
как указано в djangodocs:
Если вы полностью довольны моделью Djangos User, и просто хотите добавить дополнительную информацию о профиле, вы можете просто подклассифицировать django.contrib.auth.models.AbstractUser и добавить свои собственные поля профиля. Этот класс обеспечивает полную реализацию Пользователя по умолчанию в качестве абстрактной модели.
Поэтому я унаследовал класс AbstractUser
классе "Мои Users
" и добавил поле. Но когда я запускаю python manage.py syncdb
я получаю следующую ошибку:
CommandError: One or more models did not validate:
admin.logentry: 'user' has a relation with model login.users, which has either
not been installed or is abstract.
Я рассмотрел другие вопросы о stackoverflow, но не смог разрешить ошибку. Вот мой код:
models.py
from django.conf import settings
from django.db import models
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import AbstractUser
from django.contrib import admin
class Users(AbstractUser):
college = models.CharField(max_length=40)
admin.site.register(Users, UserAdmin)
admin.py
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.forms import UserChangeForm, UserCreationForm
from login.models import Users
from django import forms
class UsersChangeForm(UserChangeForm):
class Meta(UserChangeForm.Meta):
model = Users
class UsersAdmin(UserAdmin):
form = UsersChangeForm
fieldsets = UserAdmin.fieldsets + (
(None, {'fields': ('college',)}),
)
admin.site.register(Users, UsersAdmin)
settings.py
INSTALLED_APPS = (
'forms',
'login',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
)
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
)
AUTH_USER_MODEL = 'login.users'
РЕДАКТИРОВАТЬ:
Я хочу сохранить информацию пользователя в той же таблице, что и auth_user
а не в новой таблице.