Django的qmethod是一个Django应用程序可方便地定义在Django的模型集合操作(也就是,查询集和经理)。
有一天,我希望这样的事情是包含在Django的核心。
用法
基本用法如下:
进口的cPickle的咸菜
从django.db进口车型
从djqmethod进口经理,querymethod
类组(models.Model):
 通
类Person(models.Model):
 性别=字典(M ='男',F ='女',U =“未指定”)项目()
 组= models.ForeignKey(集团related_name ='人')
 性别= models.CharField(MAX_LENGTH = 1,选择=性别)
 年龄= models.PositiveIntegerField()
 #注:您需要在这里建立一个明确的经理。
 对象=经理()
  @querymethod
 高清未成年人(查询):
 回报query.filter(age__lt = 18)
  @querymethod
 高清成人(查询):
 回报query.filter(age__gte = 18)
#`的未成年人()`和`成年人()`方法将可以在经理:
断言isinstance(Person.objects.minors(),models.query.QuerySet)
#他们将可在随后的查询集:
断言isinstance(Person.objects.filter(性别='M')。未成年人()
  models.query.QuerySet)
#他们也将提供对关系中,如果将它们混合到
该机型#默认经理:
组= Group.objects.all()[0]
断言isinstance(group.people.minors(),models.query.QuerySet)
#产生的查询集是完全泡菜安全:
断言isinstance(pickle.loads(pickle.dumps(Person.objects.minors()))
  models.query.QuerySet)
测试项目位于测试/例子/;参考本更全面的例子。
安装
PIP安装Django-qmethod
要求:
- 在Python中
- 在Django的
评论没有发现