我有一个带有fk的模型,但是在保存方法时我需要得到相关的值,例如:
class Pedidos(models.Model):
ped_cliente = models.ForeignKey(Clientes, verbose_name='Cliente')
ped_remetente = models.ForeignKey(Remetentes, verbose_name='Remetente')
ped_produto = models.ForeignKey(Produtos, verbose_name='Produto')
ped_data_pedido = models.DateField(verbose_name='Data Pedido')
ped_quantidade = models.DecimalField(verbose_name='Peso/Volume', max_digits=10, decimal_places=0)
ped_key = models.IntegerField(unique=True, editable=False, verbose_name='Cod. Pedido')
class Pagamentos(models.Model):
pag_cliente = models.ForeignKey(Clientes, verbose_name='Cliente')
pag_key_ped = models.ForeignKey(Pedidos, verbose_name='Cód. Pedido')
pag_vencimento = models.DateField(verbose_name='Data Vencimento')
pag_vlr_total = models.DecimalField(verbose_name='Valor Total', max_digits=10, decimal_places=2)
我需要在保存模型Pagamentos时使用值字段: pag_key_ped 接收 Pedidos.ped_key 值
我如何访问此值?
答案 0 :(得分:0)
您可以通过pag_key_ped.ped_key
访问它。
所以:
>>> p = Pedidos(ped_key=1)
>>> p.save()
>>> pagamentos = Pagamentos()
>>> pagamentos.pag_key_ped = p
>>> pagamentos.save()
>>> print(pagamentos.pag_key_ped.ped_key)
[out] 1
>>> pagamentos.pag_key_ped = pagamentos.pag_key_ped.ped_key
>>> pagamentos.save()
然而!:这是你想做的奇怪事情。 pag_key_ped
已经是一个ForeignKey,你想用另一个ID覆盖它。如果没有具有该ID的对象,则会抛出DoesNotExist
错误。