我有一个在Django 1.6上运行的项目正在本地机器上开发,在BitBucket上有一个git repo。
我们在服务器上运行一些测试环境,然后检查存储库并运行软件。
加载登录页面时,其中一个测试环境会出现以下错误:
TemplateSyntaxError at /login/
breadcrumbs requires 0 arguments, 1 provided
In template /.../templates/includes/breadcrumbs.html, error at line 6
该项目包含以下代码:
系统管理员/ login.html的
{% extends "workflow/base_site.html" %}
<!-- ... -->
{% block breadcrumbs %}{% endblock %}
工作流/ base_site.html
{% extends "workflow/base.html" %}
<!-- ... -->
{% block breadcrumbs %}
{% include "includes/breadcrumbs.html" %}
{% endblock %}
breadcrumbs.html
{% load tags %}
<div class="breadcrumbs">
{% if crumbs %}
{{ crumbs | breadcrumbs:current_object_id | safe }}
{% endif %}
</div>
tags.py
from django import template
register = template.Library()
@register.filter
def breadcrumbs(obj=None, current_object_id=None):
# ...
pass
login.html
模板扩展了workflow/base_site.html
,但会覆盖breadcrumbs
块,并且不应包含breadcrumbs.html
。
对于登录页面,breadcrumbs.html
模板不应具有名为crumbs
的上下文变量,并且不应该调用breadcrumbs()
标记。
错误仅发生在其中一个测试环境中,即相同的代码在不同用户帐户下的同一台计算机上运行。
是否有人能够确定此问题的原因?
答案 0 :(得分:1)
您的项目中可能有另一个名为breadcrumbs
的过滤器。尝试将您的名称重命名为其他内容以进行检查。
它也可以是一个已编译的.pyc
文件,正如您稍后发现的那样。