Benutzerdefiniertes Benutzermodell in DjangoPython

Python-Programme
Guest
 Benutzerdefiniertes Benutzermodell in Django

Post by Guest »

Ich möchte ein benutzerdefiniertes Benutzermodell mit django.contrib.auth.models.AbstractUser erstellen, wie in den Djangodocs angegeben:


Wenn Sie mit dem Benutzermodell von Django völlig zufrieden sind und nur
einige zusätzliche Profilinformationen hinzufügen möchten, können Sie einfach eine Unterklasse von
django.contrib.auth.models.AbstractUser erstellen und fügen Sie Ihre benutzerdefinierten Profilfelder hinzu. Diese Klasse stellt die vollständige Implementierung des Standardbenutzers
als abstraktes Modell bereit.


Also habe ich den AbstractUser-Klasse in meiner Users-Klasse hinzugefügt und ein Feld hinzugefügt. Aber wenn ich Python manage.py syncdb ausführe, erhalte ich die folgende Fehlermeldung:

Code: Select all

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.
Ich habe andere Fragen zu Stackoverflow durchgesehen, konnte den Fehler jedoch nicht beheben. Hier ist mein Code:

models.py

Code: Select all

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

Code: Select all

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

Code: Select all

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'
BEARBEITEN:

Ich möchte die Benutzerinformationen in derselben Tabelle speichern als auth_user und nicht in einer neuen Tabelle.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post