Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django客户经理_Python_Django_Models_Django Custom Manager - Fatal编程技术网

Python Django客户经理

Python Django客户经理,python,django,models,django-custom-manager,Python,Django,Models,Django Custom Manager,我正在看一些代码,我很好奇这是否是一个好的实践 class ToDoManager(models.Manager): def scheduled(self): """ Returns QuerySet of all things to be done. """ return self.filter(...) class ImpStuff(models.Model):

我正在看一些代码,我很好奇这是否是一个好的实践

      class ToDoManager(models.Manager):
          def scheduled(self):
          """
          Returns QuerySet of all things to be done.
          """
          return self.filter(...)


      class ImpStuff(models.Model):
          ....model definition

          objects=TodoManager    

我一直看到自定义管理器覆盖get\u query\u set(解释)方法。这是处理事情的好方法吗?

我以前也这样做过。它工作得很好。所以除非你看我的代码,世界上显然有两个人觉得这很有用

它不是覆盖
get\u query\u set
的替代方法-它提供了获取(筛选)实例的其他方法。你可以同时做这两件事(在合理的范围内)

你期待什么问题


PS这种方法也在Pro Django中使用,第274页以后,其中管理器通过
most_-recent()

等方法进行扩展。它工作得很好。所以除非你看我的代码,世界上显然有两个人觉得这很有用

它不是覆盖
get\u query\u set
的替代方法-它提供了获取(筛选)实例的其他方法。你可以同时做这两件事(在合理的范围内)

你期待什么问题


PS这种方法也在Pro Django中使用,第274页以后,管理器通过
most_-recent()

等方法进行扩展,使用模型管理器包装复杂的ORM查询是非常枯燥和推荐的。您可以向这些方法中添加参数,并节省大量代码:

class ToDoManager(models.Manager):
      def scheduled(self, start_date, end_date):
      """
      Returns tasks to be done within two dates.
      """
      return self.filter(...)
那么你只要做:

todo_tasks = ImpStuff.objects.scheduled(datetime.now(), datetime.datetime.now() + datetime.timedelta(3))

在Github上提供的许多开源Django应用程序中都使用了管理器。

使用模型管理器包装复杂的ORM查询是非常枯燥和推荐的。您可以向这些方法中添加参数,并节省大量代码:

class ToDoManager(models.Manager):
      def scheduled(self, start_date, end_date):
      """
      Returns tasks to be done within two dates.
      """
      return self.filter(...)
那么你只要做:

todo_tasks = ImpStuff.objects.scheduled(datetime.now(), datetime.datetime.now() + datetime.timedelta(3))

很多开源Django应用程序都使用管理器,Github上提供了管理器。

是的,我希望使用类似Model.objects.scheduled()的方法链。是吗?是的,我希望像Model.objects.scheduled()这样的方法链。是这样吗?