5

我只是在学习 django,嗯,django 对我来说最大的问题是,如果出现问题,我会得到一个巨大的回溯,而没有任何信息真正出了什么问题。

我实际上正在遵循本教程中的教程步骤。是否有任何解释如何阅读和理解 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 的方式:每次如果发生错误,去谷歌,传递令人困惑的消息并通过 try-error 找到哪个答案与我的问题匹配。

我想真正了解 django/python 告诉什么以及“真正”的问题是什么,而不仅仅是“django 深处某处的错误 17”。

任何想法如何“阅读”此错误消息?

4

1 回答 1

2

您应该将 DEBUG 设置为 True。然后,您会收到一条信息量更大的错误消息,其中包含回溯中每个点的代码上下文和局部变量。

在您的情况下,您在 Site 表(来自 django.contrib.sites)中缺少一个条目,该条目应该在您运行manage.py syncdb.

于 2013-10-27T19:08:45.920 回答