簡體   English   中英

如何從ForeignKey模型中獲取相關值

[英]how to get a related value from a ForeignKey model django admin

我有一個帶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

我該如何獲取該值?

您可以通過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錯誤。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM