Jestem nowy w świecie Django, ale widzę tam "magię". Używam Django REST Framework i tworzę aplikację, która pozwoli na bezpłatną rejestrację użytkownika. Mój użytkownik potrzebuje dodatkowych pól, które nie są dostępne w Django. Dlatego szukałem w Google rozszerzenia na użytkownika. Istnieje pogląd, że należy to zrobić poprzez stworzenie coś takiegoDjango REST Framework Tworzenie niestandardowego użytkownika
class MyUser(models.Model):
user = models.ForeignKey(User, unique=True)
city = models.CharField(max_length=50, blank=True, default='')
to jest w porządku, ale mam ten serializer
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = MyUser
fields = ('id', 'username', 'password', 'first_name', 'last_name', 'email', 'city')
Więc problemem jest to, że serializer robi jakieś „magiczne” tutaj . Próbuje dowiedzieć się, jakie pole powinien mieć model ... Chcę mieć użytkownika z polami wymienionymi tutaj, a te pola są w User, a "city" to nowe pole niestandardowe. Serializator nie zrozumiałby, że powinien wyglądać wewnątrz modelu użytkownika.
Czego mi tu brakuje? Jak powiedzieć temu serializatorowi, że chcę niektóre pola wewnątrz użytkownika? Muszę też móc kreować użytkownika.
Należy użyć 'OneToOneField' dla stosunku UserModel, a nie' ForeignKey' od ich może być tylko jeden '' MyUser' dla każdej instancji użytkownik portu. –
Użyj 'OneToOneField' i postępuj zgodnie z tą odpowiedzią i dobrze Ci idzie: [link] (http://stackoverflow.com/a/28733782/3294412) – musicformellons