如何在 Django 模板中使用 select_related 作为模型方法?
How do you use select_related for a model method in a Django template?
我一直在使用模型方法 return 模型(主题)的详细名称。 get_verbose_name 方法看起来像这样:
def get_verbose_name(self):
return self.city.name
如您所见,此方法使用外键检索另一个模型。这个 ForeignKey 看起来像这样:
city = models.ForeignKey(City, blank = True, null = True)
不幸的是,此模型方法在模板中调用时使用:
{{ topic.get_verbose_name }}
生成重复查询。出于性能原因,是否可以在模型方法中使用 select_related ?我知道您可以使用 模型管理器 默认情况下使用 select_related,但出于各种原因,我宁愿只使用 select_related 具体方法。
谢谢!
不,不能在模型方法中使用 select_related
。调用方法时,topic
已经从数据库中获取,因此使用 select_related
.
为时已晚
我一直在使用模型方法 return 模型(主题)的详细名称。 get_verbose_name 方法看起来像这样:
def get_verbose_name(self):
return self.city.name
如您所见,此方法使用外键检索另一个模型。这个 ForeignKey 看起来像这样:
city = models.ForeignKey(City, blank = True, null = True)
不幸的是,此模型方法在模板中调用时使用:
{{ topic.get_verbose_name }}
生成重复查询。出于性能原因,是否可以在模型方法中使用 select_related ?我知道您可以使用 模型管理器 默认情况下使用 select_related,但出于各种原因,我宁愿只使用 select_related 具体方法。
谢谢!
不,不能在模型方法中使用 select_related
。调用方法时,topic
已经从数据库中获取,因此使用 select_related
.