2013-10-27 29 views
3

我只是在學習django,好吧,對我來說django的最大問題是,如果出現問題,我會得到一個沒有任何信息的巨大追溯什麼是真的出錯了。如何閱讀和理解django錯誤消息?

我實際上是遵循這個Tutorial的教程步驟。 有沒有解釋如何閱讀和理解django錯誤消息?

例子:

DoesNotExist at /admin/ 

Site matching query does not exist. 

Request Method:  GET 
Request URL: http://localhost:8080/admin/ 
Django Version:  1.4.5 
Exception Type:  DoesNotExist 
Exception Value:  

Site matching query does not exist. 

Exception Location:  /usr/lib/python2.7/dist-packages/django/db/models/query.py in get, line 366 
Python Executable: /usr/bin/python 
Python Version:  2.7.3 
Python Path:  

['/home/ps/src/python/django', 
'/usr/lib/python2.7', 
'/usr/lib/python2.7/plat-linux2', 
'/usr/lib/python2.7/lib-tk', 
'/usr/lib/python2.7/lib-old', 
'/usr/lib/python2.7/lib-dynload', 
'/usr/local/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages', 
'/usr/lib/python2.7/dist-packages/PIL', 
'/usr/lib/pymodules/python2.7/gtk-2.0', 
'/usr/lib/python2.7/dist-packages/gst-0.10', 
'/usr/lib/python2.7/dist-packages/gtk-2.0', 
'/usr/lib/pymodules/python2.7'] 

Server time: So, 27 Okt 2013 19:32:52 +0100 


Traceback: 
File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in wrapper 
    213.     return self.admin_view(view, cacheable)(*args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view 
    91.      response = view_func(request, *args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    89.   response = view_func(request, *args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in inner 
    195.     return self.login(request) 
File "/usr/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    89.   response = view_func(request, *args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/contrib/admin/sites.py" in login 
    326.   return login(request, **defaults) 
File "/usr/lib/python2.7/dist-packages/django/views/decorators/debug.py" in sensitive_post_parameters_wrapper 
    69.    return view(request, *args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/utils/decorators.py" in _wrapped_view 
    91.      response = view_func(request, *args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/views/decorators/cache.py" in _wrapped_view_func 
    89.   response = view_func(request, *args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/contrib/auth/views.py" in login 
    53.  current_site = get_current_site(request) 
File "/usr/lib/python2.7/dist-packages/django/contrib/sites/models.py" in get_current_site 
    92.   current_site = Site.objects.get_current() 
File "/usr/lib/python2.7/dist-packages/django/contrib/sites/models.py" in get_current 
    25.    current_site = self.get(pk=sid) 
File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py" in get 
    131.   return self.get_query_set().get(*args, **kwargs) 
File "/usr/lib/python2.7/dist-packages/django/db/models/query.py" in get 
    366.      % self.model._meta.object_name) 

Exception Type: DoesNotExist at /admin/ 
Exception Value: Site matching query does not exist. 

這是什麼東西要去嘗試告訴我? 「/ admin /」中的「DoesNotExist」是什麼?關於「DoesNotExists」的描述僅僅告訴:「一個對象不存在」。

管理員界面肯定是之前的工作,但是我剛剛打在我的應用程序裏面對我的模型,但是從settings.py從我的項目,我會得到的消息刪除我在INSTALLED_APPS的應用程序,甚至後。 我的應用程序本身似乎工作,但管理界面沒有。

現在,谷歌搜索後,我發現我必須註釋掉「django.contrib.sites」後,一切正常。但我不認爲這將是django的方式:每次發生錯誤時,轉到谷歌,傳遞令人困惑的消息,並通過嘗試錯誤找到哪些答案符合我的問題。

我想真正理解什麼是django/python講述什麼是「真正」的問題,而不僅僅是「django深處的錯誤17」。

任何想法如何「讀取」此錯誤消息?

+0

在嘗試運行服務器之前是否運行過'python manage.py syncdb'?這應該創建了表格和默認的'example.com'網站。 – Fiver

+0

syncdb不能解決問題。它只是告訴從0燈具安裝0對象。 – Bingo

+0

我認爲[這個問題] [1]有你正在尋找的答案。 [1]:http://stackoverflow.com/questions/6086852/how-to-fix-the-django-sites-table –

回答

2

您應該將DEBUG設置爲True。然後你會得到更多的信息錯誤信息,並在回溯中的每個點上使用代碼上下文和局部變量。

就你而言,你缺少Site表(來自django.contrib.sites)中的一個條目,在運行manage.py syncdb時應該創建該條目。

+0

調試已經成爲事實,否則我不會得到這個消息上文提到的。 – Bingo

+0

那麼,那麼在這種情況下,你已經看到了很好的回溯,你只是選擇不發佈它(可能是正確的)。但是,這個好回溯告訴你*正確*在堆棧跟蹤的每個級別上發生了什麼。我不相信你需要更多的信息。在任何情況下,即使是壓縮版本*都會給你提供比你似乎已經意識到更多的信息:它明確表示沒有找到Site對象。 –

+0

我發佈了回溯,請向下滾動代碼部分。 – Bingo