我的django select_相关的工作非常奇怪
Models:
class Publisher(models.Model):
name = models.CharField(max_length=100)
class Meta:
app_label = 'models'
db_table = 'Publisher'
class Book(models.Model):
name = models.CharField(max_length=100)
publisher = models.OneToOneField(Publisher)
class Meta:
app_label = 'models'
db_table = 'Book'
输出:
^{pr2}$Django生成正确的查询,并在执行查询时检索数据。但值不包含Publisher
您稍微误解了} :
selected_related
的工作原理。参考django docs on ^{正如您已经确定的那样,添加
select_related
会导致django选择相关对象的数据(Publisher.id
&;Publisher.name
在本例中)。但是,all()
方法仍然只返回Book
查询集。在当您访问
Book
的Publisher
时,django将不需要再次查询数据库中的Publisher
:这是两个数据库查询,而
^{pr2}$select_related
查找只有一个:(示例是django docs示例的细微变化)
相关问题 更多 >
编程相关推荐