2015-12-04 36 views
0

讓我們在Django說我有模式:調用Django中刪除()給出了錯誤信息

class Test(models.Model): 
    name = models.CharField(max_length = 100) 

然後我用下面的代碼在運行Django shell:

from app.models import Test 
test = Test(name = "Hi") 
test.save() 

到目前爲止好。現在我做:

Test.objects.all().delete() 

然後我得到一個很長的錯誤消息:

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\query.py", line 536, in delete 
    collector.collect(del_query) 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\deletion.py", line 193, in collect 
    if self.can_fast_delete(objs): 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\deletion.py", line 155, in can_fast_delete 
    for related in get_candidate_relations_to_delete(opts): 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\deletion.py", line 67, in <genexpr> 
    f for f in candidate_model_fields 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\deletion.py", line 62, in <genexpr> 
    opts.get_fields(include_hidden=True) for opts in candidate_models 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\options.py", line 740, in get_fields 
    return self._get_fields(include_parents=include_parents, include_hidden=include_hidden) 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\options.py", line 802, in _get_fields 
    all_fields = self._relation_tree 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\utils\functional.py", line 59, in __get__ 
    res = instance.__dict__[self.name] = self.func(instance) 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\options.py", line 709, in _relation_tree 
    return self._populate_directed_relation_graph() 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\db\models\options.py", line 681, in _populate_directed_relation_graph 
    all_models = self.apps.get_models(include_auto_created=True) 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\apps\registry.py", line 168, in get_models 
    self.check_models_ready() 
    File "C:\Users\Alexander\Anaconda3\lib\site-packages\django\apps\registry.py", line 131, in check_models_ready 
    raise AppRegistryNotReady("Models aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet. 

我看到其他人得到類似的錯誤消息,但他們並沒有使用delete()操作也沒有他們使用Django shell。如果是相關的,我使用Django 1.8.6在Microsoft Visual Studio 2015年

回答

1

different SO answers,我已經看到,這將這樣的伎倆:

import django 
django.setup() 

和它背後的原因是

基本上,Django有一種新的方式來加載安裝的應用程序。如果你從一個Python腳本中加載 Django(就像我在我的自定義單元測試中那樣),在繼續之前需要完成一些 初始化操作,並且調用setup() 是如何執行的。除此之外,團隊的榮譽,我的1.6.2到1.7.1 升級似乎是一個小時的實際工作。

- JL Peyret

+0

上解決了這個問題對我來說,謝謝。 – Alex