django rest framework вложенные поля с несколькими моделями
Это основа отдыха django и django. У меня 2 модели: пользователь и телефон.
1-я проблема:
Я хочу иметь возможность обновлять пользовательские данные (электронную почту) вместе с телефонными данными (номерами телефонов) в одном ответе об обновлении API. Номер телефона может быть 0 или много. Ну, как частичный = Правда на самом деле. Если пользователь просто хочет обновить телефонные номера, не обновляйте электронную почту и наоборот.
Дополнительная информация: На момент регистрации телефон не включен. Просто основная информация о пользователе (фамилия, имя, адрес электронной почты, пароль). Телефон может быть обновлен только в форме профиля пользователя после регистрации. Форма профиля пользователя на самом деле ссылается на несколько моделей, таких как пользователь и телефон
2-я проблема:
Как сериализовать несколько phone_numbers и сохранить в БД?
class User(AbstractBaseUser):
email = models.EmailField(unique=True, default='')
USERNAME_FIELD = 'email'
class Phone(models.Model):
phone_number = models.CharField(max_length=10)
owner = models.ForeignKey(User)
--------------------------------------
class UserSerializer(serializers.ModelSerializer):
phone_number = PhoneSerializer(required=False, many=True)
class Meta:
model = User
fields = ('email, 'phone_number')
class PhoneSerializer(serializers.ModelSerializer):
class Meta:
Model = Phone
fields = ('phone_number')
Форма html будет иметь знак плюс в поле номера телефона, чтобы указать, что можно добавить новый номер телефона. примерВот
email : [email protected]
phone number: 23423432423
(add more)
phone number: 3423423423
(add more)
...
Ожидаемый JSON
{
'email': '[email protected]',
'phone_number': '32432433223234'
}
или если добавлено много телефонных номеров
{
'email': '[email protected]',
'phone_number': '32432433223234',
'phone_number': '324342322342323'
}
или, может быть
{
'email': '[email protected]',
'phone_number': ['32432433223234','324342322342323']
}
или, может быть
{
'email': '[email protected]',
'Phone': [{'id': 1, 'phone_number': '32432433223234'}, {'id': 2, 'phone_number': '324342322342323'}]
}
это JSON можно сделать? как сериализатор и modelviewset могут это сделать? извини, я совершенно новичок в drf