1

我发现了一个更好的错误信息(见下文)。

我在 core/models.py 中有一个名为 App 的模型。尝试访问 django admin 中的特定应用程序对象时发生错误。即使在具有单个应用程序对象的空数据库上(在 syncdb 之后)。

似乎 core_app_history 是 django 生成的。任何帮助表示赞赏。

这是一个例外:

NoReverseMatch at /admin/core/app/251/
Reverse for 'core_app_history' with arguments '(u'',)' and keyword arguments '{}' not found.
Request Method: GET
Request URL:    http://weblocal:8001/admin/core/app/251/
Django Version: 1.5.4
Exception Type: NoReverseMatch
Exception Value:    
Reverse for 'core_app_history' with arguments '(u'',)' and keyword arguments '{}' not found.
Exception Location: /opt/virtenvs/django_slice/local/lib/python2.7/site-packages/django/template/defaulttags.py in render, line 426
Python Executable:  /opt/virtenvs/django_slice/bin/python
Python Version: 2.7.3
Python Path:    
['/opt/src/slicephone/cloud',
'/opt/virtenvs/django_slice/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg',
'/opt/virtenvs/django_slice/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg',
'/opt/virtenvs/django_slice/local/lib/python2.7/site-packages/distribute-0.6.35-py2.7.egg',
'/opt/virtenvs/django_slice/lib/python2.7',
'/opt/virtenvs/django_slice/lib/python2.7/plat-linux2',
'/opt/virtenvs/django_slice/lib/python2.7/lib-tk',
'/opt/virtenvs/django_slice/lib/python2.7/lib-old',
'/opt/virtenvs/django_slice/lib/python2.7/lib-dynload',
'/usr/lib/python2.7',
'/usr/lib/python2.7/plat-linux2',
'/usr/lib/python2.7/lib-tk',
'/opt/virtenvs/django_slice/local/lib/python2.7/site-packages']
Server time:    Fri, 11 Oct 2013 22:06:43 +0000

它发生在 /django/contrib/admin/templates/admin/change_form.html

32      <li><a href="{% url opts|admin_urlname:'history' original.pk|admin_urlquote %}" class="historylink">{% trans "History" %}</a></li>

这是(可能的)相关网址:

/admin/core/app/    HANDLER: changelist_view
/admin/core/app/add/    HANDLER: add_view
/admin/core/app/(.+)/history/   HANDLER: history_view
/admin/core/app/(.+)/delete/    HANDLER: delete_view
/admin/core/app/(.+)/   HANDLER: change_view
4

3 回答 3

0

我将对此发表评论,因为我遇到了完全相同的问题,这是我能找到的唯一指向正确方向的链接。实际上它并没有为我指明正确的方向,但至少它让我感觉不那么孤单了:)

请注意,我的代码有时确实有效。事实上,我的错误代码仍在生产服务器上愉快地工作。

我的问题是在管理员中我已经覆盖了我的 render_change_form。当我调用超级方法而不是做

return super(ReceiptAdmin, self).render_change_form(request, context, *args, **kwargs)

我不经意间做了

return super(ReceiptAdmin, self).render_change_form(request, context, args, kwargs)

当我单步执行代码并注意到传递的父方法看起来不正确时,我发现了这一点。它让我感到困惑,为什么它有时会起作用。这个不正确的调用是从其他一些代码中复制和粘贴的,这些代码在本地也失败了,但不是在现场。

无论如何,如果对其他人有任何用处。

于 2014-01-29T16:55:58.320 回答
0

这可能是由于具有空主键的条目引起的,如果您的模型具有类似的字段,则可能会发生这种情况

id = models.CharField(blank=True, primary_key=True)
于 2013-10-09T16:49:09.333 回答
0

我的猜测是您的 urlconf 中某处引用了一个无法导入的视图,这将导致reverse失败。尝试从 shell 反转不同的视图。

于 2013-10-04T06:27:19.017 回答