Ich bin neu in Django Realm, aber sehen Sie, es gibt eine Menge "Magie" dort. Ich verwende Django REST Framework und erstelle eine App, die eine kostenlose Benutzerregistrierung ermöglicht. Mein Benutzer benötigt einige zusätzliche Felder, die in Django-Benutzern nicht verfügbar sind. Also habe ich gegoogelt, um User zu erweitern. Es ist eine Idee, dass dies durch die Schaffung von so etwas wie dieseDjango REST Framework Erstellen benutzerdefinierter Benutzer
getan werden sollteclass MyUser(models.Model):
user = models.ForeignKey(User, unique=True)
city = models.CharField(max_length=50, blank=True, default='')
Das ist in Ordnung, aber ich habe diesen Serializer
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = MyUser
fields = ('id', 'username', 'password', 'first_name', 'last_name', 'email', 'city')
So ist das Problem, dass diese Serializer ein „magischen“ tun hier . Es versucht herauszufinden, welches Feld sollte Modell haben ... Ich möchte Benutzer mit den hier aufgeführten Felder haben, und diese Felder sind in Benutzer und "Stadt" ist neues benutzerdefiniertes Feld. Der Serializer bekommt nicht, dass er in das Benutzermodell schauen soll.
Was fehlt mir hier? Wie kann ich diesem Serializer mitteilen, dass ich einige Felder in User möchte? Ich muss in der Lage sein, Benutzer auch zu schaffen.
sollten Sie verwenden 'OneToOneField' für Ihre UserModel Beziehung, nicht' ForeignKey' da sie nur ein 'MyUser' für jede' User' Instanz sein. –
Verwenden Sie 'OneToOneField' und folgen Sie dieser Antwort und Sie sind gut zu gehen: [link] (http://Stackoverflow.com/a/28733782/3294412) – musicformellons