結果をキャッシュし、今後のクエリで使用することにより、管理者からの 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
これを実行すると、ユーザーごとに、会社名を抽出するための会社モデルへのクエリがあることがわかります。ただし、多くの企業はなく、多くの場合、ユーザーは多くのアクションを次々に実行するため、すべての企業を一度クエリしてから、エントリごとにデータベースにアクセスする代わりに、キャッシュされた結果を使用したいと考えています。
どうやってやるの?