[英]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.