我对这件事有点混乱......失去了几个小时,并尝试了很多代码的变体,但没有成功。
我需要在创建帐户时为每个用户创建一个名为ContaCorrente
的相关对象{。{1}}。
这些是我的模特:
Usuario
这是我的Serializers:
class Usuario(models.Model):
"""Classe que ira gerir o cliente final, cadastrado via APP ou Webapp"""
nome = models.CharField(max_length=60)
sobrenome = models.CharField(max_length=60)
telefone = models.CharField(max_length=20)
.... FOR THE SAKE OF BREVITY
def __str__(self):
return self.nome + ' ' + self.sobrenome
class ContaCorrente(models.Model):
"""Controle financeiro do Cliente/Usuario cadastrado"""
pontos = models.DecimalField(max_digits=10, decimal_places=2, default=0)
saldo_reais = models.DecimalField(max_digits=10, decimal_places=2, default=0)
usuario = models.OneToOneField(Usuario, on_delete=models.CASCADE, related_name='conta_corrente')
我确实尝试了很多这个代码的变种,但无法找到它爆炸的地方。
class ContaCorrenteSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = ContaCorrente
fields = ('pontos', 'saldo_reais', 'usuario_id')
class UsuariosSerializer(serializers.HyperlinkedModelSerializer):
conta_corrente = ContaCorrenteSerializer(read_only=True)
id = serializers.ReadOnlyField()
class Meta:
model = Usuario
fields = (
'id',
'nome',
'sobrenome',
'telefone',
...
FOR THE SAKE OF BREVITY
...
'updated_at',
'conta_corrente'
)
def perform_create(self, serializer):
conta = ContaCorrente.objects.create(usuario_id=self.kwargs.get('pk'), saldo_reais=0, pontos=0)
conta.save()
serializer.save()
return serializer
模型得到保留,但Usuario
没有!有人帮忙吗?谢谢!