我一直在使用模型方法返回模型的详细名称(主题)。 get_verbose_name方法如下所示:
def get_verbose_name(self):
return self.city.name
如您所见,此方法使用ForeignKey检索另一个模型。这个ForeignKey看起来像这样:
city = models.ForeignKey(City, blank = True, null = True)
不幸的是,这个模型方法在模板中调用时使用:
{{ topic.get_verbose_name }}
生成重复的查询。出于性能原因,是否可以在模型方法中使用select_related?我知道您可以使用模型管理器默认使用select_related,但出于各种原因,我更倾向于仅对此特定方法使用select_related。
谢谢!
答案 0 :(得分:1)
不,在模型方法中无法使用select_related
。在调用方法时,已经从数据库中提取topic
,因此使用select_related
为时已晚。