ドキュメントのパターンを使用して、非地理モデルで Cache Machine のキャッシュ マネージャーを使用しています。
from django.db import models
from caching.base imoprt CachingManager, CachingMixin
class Zomg(CachingMixin, models.Model):
val = models.IntegerField()
objects = CachingManager()
しかし、 GeoDjango フィールドタイプを含むモデルがいくつかあるため、GeoManager を使用する必要があります。
class RecordArea(models.Model):
polygon = models.MultiPolygonField(srid=4326)
name = models.CharField(max_length=100)
...
objects = models.GeoManager()
これら 2 つのマネージャーを地理モデルに統合するにはどうすればよいですか? 私はDjango 1.5 / Python 2.7.5を使用しています。
これは、私が取得した CachingManager をオーバーライドすることを示していますが、Cache Machine のドキュメントでは、QuerySet が確実にキャッシュされるようにする必要がある、つまり CachingQuerySet になるようにする必要があると考えさせられます。
CachingManager をサブクラス化する代わりに、他のマネージャーの get_query_set メソッドから CachingQuerySet を返す