2016-09-23 13 views
0

使用Django芹菜擊敗本地我得到錯誤'PeriodicTask'對象沒有屬性'_default_manager'。我正在使用Django 1.10。當我安排一個任務它的作品。但後來過了一會兒類似下面的紅色錯誤回溯發生使用Django芹菜擊敗本地我得到錯誤'PeriodicTask'對象沒有屬性'_default_manager'

[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' 

後發生這種情況下一個日程不會運行,除非我「控制+ C」出了碼頭,並再次啓動它。我在git hub上看到這可能是因爲我使用的是django 1.10。我已經將git推送到我的heroku服務器。我該如何解決這個問題? git的樞紐後表示,他做這個

Model = type(self.model) 
obj = Model._default_manager.get(pk=self.model.pk) 

我願意嘗試這種固定的,但我不知道在哪裏把這個,我不希望引起更大的意外問題,這可能會導致。我有什麼選擇?我應該手動進入我的遠程應用程序,並在每次運行後重置它?這是不可行的,並且破壞了任務自動化的目的。

回答

3

我想通了。在schedulers.py線98是

obj = self.model._default_manager.get(pk=self.model.pk) 

所以它上面的線I加入

Model = type(self.model) 

和改變

obj = self.model._default_manager.get(pk=self.model.pk) 

obj = Model._default_manager.get(pk=self.model.pk) 

所以完成它看起來像這樣

​​
相關問題