簡體   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