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