我有一个问题。这两个属性会不同,我的意思是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