[英]Django prefetch_related on an implicit relation
假設我正在制作通訊錄應用。
class AddressBookEntry(models.Model):
address_book = models.ForeignKey(AddressBook)
name = models.CharField()
email = models.EmailField()
class User(models.Model):
name = models.CharField()
email = models.EmailField()
這兩個對象都有一個電子郵件字段。 現在,我想查找給定用戶出現的所有地址簿。
def entries(self):
return AddressBookEntry.objects.filter(email=self.email)
那很好,但是當我獲取幾個用戶時,我需要為每個用戶執行一次數據庫查詢。 我想做User.objects.all().prefetch_related('entries')
,但這不起作用,因為entries
是一種方法,而不是ForeignKey。
所以-
更加“ Django”的方法是擁有一個明確的關聯字段:
class AddressBookEntry(models.Model):
address_book = models.ForeignKey(AddressBook)
name = models.CharField()
user = models.ForeignKey("User", related_name="entries")
class User(models.Model):
name = models.CharField()
email = models.EmailField()
User.objects.all().select_related('entries')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.