[英]ListCreateAPIView object has no attribute '_default_manager'
[英]using django celery beat locally I get error 'PeriodicTask' object has no attribute '_default_manager'
在本地使用django celery beat我得到了错误“ PeriodicTask”对象没有属性“ _default_manager”。 我正在使用Django 1.10。 当我安排任务时,它可以工作。 但是过了一会儿,发生了如下所示的红色错误回溯
[2016-09-23 11:08:34,962: INFO/Beat] Writing entries...
[2016-09-23 11:08:34,965: INFO/Beat] Writing entries...
[2016-09-23 11:08:34,965: INFO/Beat] Writing entries...
[2016-09-23 11:08:34,966: ERROR/Beat] Process Beat
Traceback (most recent call last):
File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/billiard/process.py", line 292, in _bootstrap
self.run()
File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/celery/beat.py", line 553, in run
self.service.start(embedded_process=True)
File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/celery/beat.py", line 486, in start
self.scheduler._do_sync()
File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/celery/beat.py", line 276, in _do_sync
self.sync()
File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/djcelery/schedulers.py", line 209, in sync
self.schedule[name].save()
File "/Users/ray/Desktop/myheroku/practice/lib/python3.5/site-packages/djcelery/schedulers.py", line 98, in save
obj = self.model._default_manager.get(pk=self.model.pk)
AttributeError: 'PeriodicTask' object has no attribute '_default_manager'
在这种情况发生后,除非我从终端“ control + c”退出并重新启动,否则下一个计划将不会运行。 我在git hub上看到这可能是因为我正在使用django 1.10。 我已经将git推送到了我的heroku服务器。 如何解决此问题? git hub post说他通过这样做解决了
Model = type(self.model)
obj = Model._default_manager.get(pk=self.model.pk)
我愿意尝试一下,但是我不知道该放在哪里,也不想引起更大的不可预见的问题。 我有什么选择? 我应该手动进入远程应用程序并在每次运行后将其重置吗? 那是行不通的,并且破坏了任务自动化的目的。
我想到了。 在schedulers.py的第98行是
obj = self.model._default_manager.get(pk=self.model.pk)
所以我在上面添加了一行
Model = type(self.model)
并改变了
obj = self.model._default_manager.get(pk=self.model.pk)
至
obj = Model._default_manager.get(pk=self.model.pk)
如此完成,看起来像这样
98 Model = type(self.model)
99 obj = Model._default_manager.get(pk=self.model.pk)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.