我试图通过缓存结果并在即将到来的查询中使用来优化来自管理员的 dbase 查询。但是 - 我仍然看到每个条目的 dbase 请求。
我有一个这样的模型:
class actions(models.Model):
user = models.ForeignKey(MyUser)
action = ...
class Myuser(Models.Model):
name = models.CharField()
company = models.ForeignKey(Companies)
在管理员 change_list 中,我希望看到一个包含以下内容的表格:
user action company_name
所以我将我的管理员定义如下:
class ActionsAdmin(admin.ModelAdmin):
list_display = ('user','action','company_name')
...
def company_name(self,instance):
return instance.user.company
当我运行它时,我看到对于每个用户,都有一个对公司模型的查询以提取公司的名称。但是,由于公司不多,而且在很多情况下,用户一次又一次地执行许多操作,我想查询所有公司一次,然后使用缓存的结果而不是访问每个条目的 dbase。
我怎样才能做到这一点?