停止编写django querysets。

dj-queryset-manager的Python项目详细描述


一个django实用程序,它使编写干式queryset方法变得简单。

警告

DJ QuerySet Manager仅适用于Django版本1.2到1.6。

在django 1.7中,它已被QuerySet.as_manager()取代。见the docs

用法

  1. 创建继承QuerySetManager
  2. 的管理器类
  3. queryset_method装饰过滤方法。这些方法接收一个queryset而不是一个manager作为第一个参数
fromdj_queryset_managerimportQuerySetManager,queryset_methodclassMyManager(QuerySetManager):@queryset_methoddefby_slug(queryset,slug):returnqueryset.filter(slug=slug)@queryset_methoddeffilter(queryset,*args,**kwargs):returnsuper(type(queryset),queryset).filter(*args,**kwargs)

作为参考,这里有一个标准实现:

fromdjango.db.modelsimportManagerfromdjango.db.models.queryimportQuerySetclassMyQuerySet(QuerySet):defby_slug(self,slug):returnself.filter(slug=slug)deffilter(self,*args,**kwargs):returnsuper(MyQuerySet,self).filter(*args,**kwargs)classMyManager(Manager):defget_query_set(self):# Better remember the arguments to QuerySetQuerySet(self.model,using=self._db)defget_queryset(self):# And don't forget about Django 1.6returnself.get_query_set()defby_slug(self,*args,**kwargs):# Enjoy this duplicate signaturereturnself.get_queryset().filter(*args,**kwargs)

混入

一些第三方应用程序将管理器作为其api的一部分提供。如果需要扩展任何现有的管理器,请使用^ {TT4} $。本例使用django-model-utils中的InheritanceManager

frommodel_utils.managersimportInheritanceManagerfromdj_queryset_managerimportQuerySetManagerMixin,queryset_methodclassMyInheritanceManager(QuerySetManagerMixin,InheritanceManager):@queryset_methoddefby_slug(queryset,slug):returnqueryset.filter(slug=slug)

安装

$ pip install dj-queryset-manager

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
我可以用C++代码使用java代码吗?   java使用JSR303在派生类中提供更具体的约束   java在这个查找唯一路径数算法中我做错了什么?   java如何为2个不同的服务提供商使用2个不同的SSL证书?   java在Gridview上绘制文本   java使用连接for循环构建字符串名   java StringBuilder拆分无法处理某些文件   java事件关注EditText   Java Web Start“找不到URL的缓存资源”   java程序从命令行运行的速度比在Eclipse中慢   java为什么HttpServletRequest会截断#字符上的url输入?   java自定义折叠工具栏平滑标题大小调整   使用Mockito对安卓 java中调用另一个静态函数的函数进行单元测试   http在java客户机中使用cachecontrol头   java如何使用。是否使用Delimiter从输入文件中排除标点符号和数字?   使用上下文作为参数/参数的java   java更有效地从Jar中提取文件   java为多个JButton提供相同的actionListener