【问题标题】:NoReverseMatch: with arguments '(u'',)' and keyword arguments '{}' not found.in Django AdminNoReverseMatch:在 Django Admin 中找不到参数 '(u'',)' 和关键字参数 '{}'
【发布时间】:2013-10-11 01:30:41
【问题描述】:

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

我在 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

【问题讨论】:

  • 所有其他视图都有效吗?
  • 显示该应用的viewsurls
  • @AryehLeibTaurog 是的,所有其他视图和管理界面都可以正常工作。
  • @sachitad 抱歉,我不想在这里显示我们所有的网址。
  • 并非所有urlview的错误。

标签: django exception django-admin


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    id = models.CharField(blank=True, primary_key=True)
    

    【讨论】:

      【解决方案3】:

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

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

      我的问题是在管理员中我覆盖了我的 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)
      

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

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

      【讨论】:

        猜你喜欢
        • 2016-05-01
        • 2012-12-11
        • 2019-07-21
        • 2013-08-06
        • 2013-12-22
        • 2023-03-15
        • 2011-10-01
        • 2013-07-25
        • 2021-10-02
        相关资源
        最近更新 更多