campos aninhados do framework django rest com vários modelos
Este é o framework django e django rest. Eu tenho 2 modelos: usuário e telefone.
O primeiro problema:
Quero poder atualizar dados do usuário (email) juntamente com dados do telefone (números de telefone) em uma única resposta de atualização da API. O número de telefone pode ser 0 ou muitos. Bem, como parcial = True, na verdade. Se um usuário quiser atualizar os números de telefone, não atualize o email e vice-versa.
Informações adicionais: no momento do registro, o telefone não está incluído. Apenas informações básicas do usuário (sobrenome, nome, email, senha). O telefone só pode ser atualizado no formulário de perfil do usuário após o registro. Na verdade, o formulário de perfil do usuário está vinculado a vários modelos, que são Usuário e Telefone
O segundo problema:
Como serializar vários phone_numbers e salvar em db?
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')
O formulário html teria sinal de adição no campo número de telefone para indicar que um novo número de telefone pode ser adicionado. exemplo éaqui
email : admin@admin.com
phone number: 23423432423
(add more)
phone number: 3423423423
(add more)
...
O json esperado
{
'email': 'email@email.com',
'phone_number': '32432433223234'
}
ou se muitos números de telefone forem adicionados
{
'email': 'email@email.com',
'phone_number': '32432433223234',
'phone_number': '324342322342323'
}
ou talvez
{
'email': 'email@email.com',
'phone_number': ['32432433223234','324342322342323']
}
ou talvez
{
'email': 'email@email.com',
'Phone': [{'id': 1, 'phone_number': '32432433223234'}, {'id': 2, 'phone_number': '324342322342323'}]
}
é possível este json? como o serializador e o modelviewset fazem isso? desculpe, eu sou totalmente novo para drf