繁体   English   中英

如何获得外键的值

[英]How to get the value of a foreign key

models.py两个类:

class Purchase(models.Model):
    book_id = models.CharField(max_length=20, primary_key=True)
    storage_id = models.CharField(max_length=20)
    def __str__(self):
        return self.book_id

class Delivery(models.Model):
    book_id = models.CharField(max_length=20, primary_key=True)
    storage_id = models.ForeignKey('Purchase', editable=True)
    def __str__(self):
        return self.book_id

保存表单后,我使用以下代码获取Delivery中的storage_id的值:

@receiver(post_save, sender = Delivery)
def removeProducts(sender, instance, **kwargs):
    print(instance.storage_id)

问题是,我得到的不是Delivery.storage_id ,而是Purchase.book_id 如何在不更改__str__函数的情况下获取Delivery.storage_id的值?

首先,不要将您的ForeignKey字段foo_id 这不是ID,而是实际的对象。 我也不确定为什么将该字段称为storage但链接到的模型是Purchase 它应该是:

purchase = models.ForeignKey('Purchase', editable=True)

现在我们消除了什么是对象和什么是字段之间的混淆,我们可以简单地遵循以下关系:

print(instance.purchase.storage_id)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM