Ich habe ein Problem. In Django habe ich ein neues Modell erstellt:
from django.db import models
from django.contrib.auth import user
class Workers(models.Model):
user = models.OneToOneField(User, primary_key=True)
work_group = models.CharField(max_length=20)
card_num = models.IntegerField()
def __unicode__(self):
return self.user
Aber es funktioniert nicht: ImportError: cannot import name user
Wie man es repariert?
Daher möchte ich in db eine neue Tabelle "Arbeiter" erstellen, die eine OneToOne
Beziehung zur Tabelle "auth_user" hat. Vielen Dank.
Wenn Sie ein benutzerdefiniertes Benutzermodell verwenden, gehen Sie wie folgt vor, um darauf zu verweisen:
Oder wenn Sie es in Fremdschlüsseln oder in vielen-zu-vielen-Beziehungen verwenden:
docs
quelle
AUTH_USER_MODEL
ist eine gute Lösung. Hier ist die vollständige Lösung gemäß der Frage.quelle
Um Ihren Code generisch zu halten, verwenden Sie die
get_user_model()
Methode zum Abrufen des Benutzermodells und dieAUTH_USER_MODEL
Einstellung, auf die verwiesen wird, wenn Sie die Beziehungen des Modells zum Benutzermodell definieren, anstatt direkt auf das Auth-Benutzermodell zu verweisen.ref: Django By Example Book
quelle