我从事 django 项目已有一段时间了,该项目使用 grappelli 作为管理员,今天突然间我的 change_form.html 模板抛出以下错误:
Caught NoReverseMatch while rendering: Reverse for "grp_related_lookup" with arguments '()' and keyword arguments '{}' not found.
有问题的代码行是第 38 行:
37 $.each(related_lookup_fields_fk, function() {
38 $("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
39 });
前面是这段代码:
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
. 我尝试过替换grp_related_lookup
,grappelli.views.related.related_lookup
但也没有用。此外,在模板中,违规行如下所示:
$("#id_" + this).grp_related_fk({lookup_url:"{% url grp_related_lookup %}"});
但在错误消息中它看起来像这样:
$("#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
视图函数中,但它似乎没有被调用。 - 我最近没有碰过任何模板。
希望有人能指出我正确的方向......谢谢!