Django CMS - 无效的块标签endblock。

19

我正在尝试将Django CMS与Pinax一起使用,但是运行服务器时出现以下问题:

http://dpaste.com/704936/

看到最后:

.... 
 File "/home/tux/VirtualEnvs/NewAvePinaxBootstrap/lib/python2.7/site-packages/sekizai/templatetags/sekizai_tags.py", line 43, in parse_blocks
    self.blocks['nodelist'] = self.parser.parse()
  File "/home/tux/VirtualEnvs/NewAvePinaxBootstrap/lib/python2.7/site-packages/django/template/base.py", line 237, in parse
    self.invalid_block_tag(token, command, parse_until)
  File "/home/tux/VirtualEnvs/NewAvePinaxBootstrap/lib/python2.7/site-packages/django/template/base.py", line 291, in invalid_block_tag
    raise self.error(token, "Invalid block tag: '%s'" % command)
django.template.base.TemplateSyntaxError: Invalid block tag: 'endblock'
endblock为什么是无效的块标签?当我从INSTALLED_APPS中禁用'cms'时,错误消失了。所以我认为这是django cms的问题,或者这是一个更一般的django问题?django cms不能与pinax一起使用吗?我按照django cms文档上的教程制作/复制了他们的样例模板_1。

看不到你的模板代码很难确定,但请检查以下几点:a)是否在你的settings.py中包含了中间件和上下文处理器;b)任何使用自定义标签的模板都需要在开头包含{% load cms_tags %}行。 - Mikesname
1个回答

31
我找到了解决方法。问题出现在模板中。我不知道 sekizai 标签不能在 block 标签内部使用。根据 sekizai 文档 的说明:

该标签必须位于基本模板中。它不能用于包含的模板中。 该标签不能放置在块标签内(例如带有结束标记的模板标签,例如 {% block name %}...{% endblock %})。

对于以后可能遇到此问题的任何人,请注意这段代码是错误的:

{% block extra_style %}{% render_block "css" %}{% endblock %}

很棒,你成功地回答了自己的问题。你可能想尝试在问题中添加更多关于你所使用的内容的细节(例如,django-cms和sekizai都在INSTALLED_APPS中,而sekizai.context_processors.sekizai在TEMPATE_CONTEXT_PROCESSORS中)。 - istruble
1
好的!谢谢。我并不知道我的问题从哪里开始,所以我也不知道什么是相关的。我会在未来的问题中添加更具体的细节。 - Justin M
3
Django-CMS本身不喜欢在块内使用{% cms_toolbar %}标签。 - che

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接