hea*_*ved 12 django django-templates django-admin django-grappelli
我已经在django项目上工作了一段时间,现在使用grappelli作为管理员,今天突然间我的change_form.html模板抛出了以下错误:
Caught NoReverseMatch while rendering: Reverse for "grp_related_lookup" with arguments '()' and keyword arguments '{}' not found.
Run Code Online (Sandbox Code Playgroud)
令人讨厌的代码行是第38行:
37 $.each(related_lookup_fields_fk, function() {
38 $("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
39 });
Run Code Online (Sandbox Code Playgroud)
之前是这段代码:
var related_lookup_fields_fk = {% get_related_lookup_fields_fk adminform.model_admin %};
Run Code Online (Sandbox Code Playgroud)
显然这是{% url grp_related_lookup %}导致问题的一点.
我不明白模板是如何解决grp_related_lookup的grappelli.views.related.related_lookup.我曾尝试更换grp_related_lookup与grappelli.views.related.related_lookup那也不能工作.此外,在模板中,违规行看起来像这样:
$("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
Run Code Online (Sandbox Code Playgroud)
但在错误消息中它看起来像这样:
$("#id_" + this).grp_related_fk({lookup_url:"{% url 'grp_related_lookup' %}"});
Run Code Online (Sandbox Code Playgroud)
我不知道周围的单引号grp_related_lookup是否与问题有关.这是django如何呈现函数调用?它是否将字符串传递'grp_related_lookup'给url模板标记?如果是这样的话,可能会导致这种情况突然破裂?
一些额外的信息:
related_lookup_fields空列表[].我没有related_lookup_fields在admin.py中定义任何内容.grappelli.views.related.related_lookupview函数中,它似乎没有被调用.希望有人可以指出我正确的方向......谢谢!
小智 20
你还'grappelli.urls'包含在你的URLconf中吗?这是我看到的唯一原因会导致此错误.您可以尝试使用python manage.py shell:
from django.core.urlresolvers import reverse
print reverse('grp_related_lookup')
Run Code Online (Sandbox Code Playgroud)
如果此行返回正确的URL,则不应NoReverseMatch在模板中获取.
周围的报价grp_related_lookup不应该是一个问题.该{% url %}标签同时接受报价,不带引号的字符串作为第一个参数,所以它的Django到正常化引用的字符串.这种行为将来会发生变化:您将能够将模板变量传递给{% url %}使用不带引号的字符串.{% url foo %}并且{% url "foo" %}不会给出相同的结果,有关详细信息,请参阅1.3发行说明.
我遇到了与Django 1.5和Grappelli 2.4.4相同的行为.
要解决我必须添加的问题
url(r'^grappelli/', include('grappelli.urls')),
Run Code Online (Sandbox Code Playgroud)
到urlpatterns.
| 归档时间: |
|
| 查看次数: |
8004 次 |
| 最近记录: |