如何在 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.

为时已晚