首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-grappelli管理员:没有反向匹配错误

Django-grappelli管理员:没有反向匹配错误
EN

Stack Overflow用户
提问于 2011-08-24 21:29:47
回答 7查看 8.7K关注 0票数 13

我在使用grappelli进行管理的django项目上工作了一段时间,今天,我的change_form.html模板突然抛出了以下错误:

代码语言:javascript
复制
Caught NoReverseMatch while rendering: Reverse for "grp_related_lookup" with arguments '()' and keyword arguments '{}' not found.

违规的代码行是第38行:

代码语言:javascript
复制
37    $.each(related_lookup_fields_fk, function() {
38        $("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
39    });

它前面有以下代码:

代码语言:javascript
复制
var related_lookup_fields_fk = {% get_related_lookup_fields_fk adminform.model_admin %};

显然,导致问题的是{% url grp_related_lookup %}位。

我不明白模板是如何将grp_related_lookup解析为grappelli.views.related.related_lookup的。我试过用grappelli.views.related.related_lookup代替grappelli.views.related.related_lookup,但这也不起作用。此外,在模板中,违规行如下所示:

代码语言:javascript
复制
$("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});

但是在错误消息中,它看起来如下:

代码语言:javascript
复制
$("#id_" + this).grp_related_fk({lookup_url:"{% url 'grp_related_lookup' %}"});

我不知道围绕grp_related_lookup的单引号是否与问题有关。django就是这样实现函数调用的吗?它是否将字符串'grp_related_lookup'传递给url模板标记?如果是这样的话,是什么使它突然破裂的呢?

一些补充信息:

  • related_lookup_fields的值是一个空列表[]。我没有在我的related_lookup_fields中定义任何admin.py。
  • 我向grappelli.views.related.related_lookup视图函数中抛出了几个调试语句,它似乎没有被调用。
  • 我最近没有碰过任何模板。

希望有人能给我指明正确的方向。谢谢!

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-08-24 21:48:55

您的URLconf中还包括URLconf吗?我看到的唯一原因会导致这个错误。您可以尝试使用python manage.py shell

代码语言:javascript
复制
from django.core.urlresolvers import reverse
print reverse('grp_related_lookup')

如果这一行返回正确的URL,则不应该在模板中获得NoReverseMatch

关于grp_related_lookup的引语不应该引起关注。{% url %}标记接受引用字符串和未引用字符串作为第一个参数,因此django将其规范化为引号字符串。这种行为将在未来发生变化:您将能够使用未引用的字符串将模板变量传递给{% url %}{% url foo %}{% url "foo" %}不会给出相同的结果,有关这方面的详细信息,请参阅1.3发行说明

票数 22
EN

Stack Overflow用户

发布于 2013-04-03 11:48:53

在Django 1.5和Grappelli 2.4.4中,我遇到了同样的行为。

要解决这个问题,我必须添加

代码语言:javascript
复制
url(r'^grappelli/', include('grappelli.urls')),

urlpatterns

票数 8
EN

Stack Overflow用户

发布于 2015-01-21 06:14:30

今天,当我尝试删除admin.Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': ''}' not found.中的数据时,我遇到了这个问题。

我已经把url(r'^grappelli/', include('grappelli.urls'))放在urls.py里了

解决方案非常奇怪:只需将grappelli更新为最新版本即可。(我将其更新为2.5.6至2.6.3)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7182532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档