【发布时间】:2017-11-10 21:33:26
【问题描述】:
我在这件事上有点搞砸了...浪费了几个小时,并尝试了很多此代码的变体,但没有成功。
我需要在创建帐户时为每个用户创建一个名为ContaCorrente 的相关对象Usuario。
这些是我的模型:
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 模型会被持久化,但ContaCorrente 不会!有人有帮助吗?谢谢!
【问题讨论】:
标签: django python-3.x django-rest-framework