我有一個問題。這兩個屬性會不同,我的意思是db命中。 例如,我們有模型的文章,具有ForeignKey
場book
django和模型的屬性
from django.db import models
class Article(models.Model):
book = models.ForeignKey("books.Book")
是什麼讓一個author
由prorerties的一個最好的辦法:
@property
def author(self):
if self.book:
return self.book.author
return None
或
@property
def author(self):
book = self.book
if book:
return book.author
return None
Django和蟒蛇明智的,這將是相等的。實際的命中是在你的queryset方法中。 – KillianDS
我不確定我瞭解你的問題。你的兩個選項看起來功能上與我完全相同。我會選擇一個,因爲它有一個較少的線。他們都需要2個查詢:一個用於作者對象,另一個用於該書。但是,如果您使用select_related()選擇作者對象,則可以將其作爲一個參數,它將預先加入書本。 – acjay