我使用的是Django 1.9.9,那么如何编辑我的模型而不是PassThroughManager呢?
from model_utils.managers import PassThroughManager
class TopicQuerySet(QuerySet):
def get_topic_today(self):
return self.filter(created_at__day=datetime.date.today()).order_by('title')
def get_topic_popular(self):
return self.annotate(entry_count=Count('entry')).order_by('-entry_count')
class Topic(TimeStampModel):
objects = PassThroughManager.for_queryset_class(TopicQuerySet)()我是否应该尝试使用GeoManager
发布于 2017-04-11 20:32:46
新版本的Django (我相信是1.9+)有一些类似PassThroughManager的内置(model_utils)功能。像这样重写,你应该会得到相同的概念:
from django.db.models import Manager
from django.db.models.query import QuerySet
class TopicManager(Manager):
pass
class TopicQuerySet(QuerySet):
def get_topic_today(self):
return self.filter(created_at__day=datetime.date.today()).order_by('title')
def get_topic_popular(self):
return self.annotate(entry_count=Count('entry')).order_by('-entry_count')
class Topic(TimeStampModel):
objects = TopicManager.from_queryset(TopicQuerySet)()https://stackoverflow.com/questions/39206306
复制相似问题