Python 如何从每个页面访问django cms中的所有页面对象?
我正在使用Django CMS 2.1.0.beta3,遇到了一个问题。我需要访问变量中的所有页面,这样我就可以循环浏览它们,并使用for循环创建导航菜单。django cms提供的show_菜单功能不适用于我正在做的事情 我需要一个包含所有页面的查询集,以便我可以执行类似以下操作:Python 如何从每个页面访问django cms中的所有页面对象?,python,django,django-cms,Python,Django,Django Cms,我正在使用Django CMS 2.1.0.beta3,遇到了一个问题。我需要访问变量中的所有页面,这样我就可以循环浏览它们,并使用for循环创建导航菜单。django cms提供的show_菜单功能不适用于我正在做的事情 我需要一个包含所有页面的查询集,以便我可以执行类似以下操作: {% for page in cms_pages %} {{ page.title }} {% endfor %} 有人知道我如何访问所有已发布的页面对象,如所有页面上的对象吗?您可以使用页面模型
{% for page in cms_pages %}
{{ page.title }}
{% endfor %}
有人知道我如何访问所有已发布的页面对象,如所有页面上的对象吗?您可以使用页面模型获取所有已发布的页面。
Page.objects.published()
您可以在视图或插件中使用它
问候
米罗
migaat.blogspot.com我最终解决了这个问题,在django中创建了一个templatetag,为所有cms页面提供服务: app/template\u tags/navigation\u tags.py:
from django import template
from cms.models.pagemodel import Page
register = template.Library()
def cms_navigation():
cms_pages = Page.objects.filter(in_navigation=True, published=True)
return {'cms_pages': cms_pages}
register.inclusion_tag('main-navigation.html')(cms_navigation)
然后在模板中调用模板标记,如下所示:
{% load navigation_tags %} {% cms_navigation %}
这需要创建一个main-navigation.html文件。在这里,来自该模板的HTML将被注入到标记所在的模板中,main-navigation.HTML将可以访问在自定义标记函数中传递给它的任何内容:
模板/main-navigation.html:
<ul id="navigation">
{% for page in cms_pages %}
{{ page.get_title }}
{% endfor %}
</ul>
{cms_pages%}中的页面为%
{{page.get_title}}
{%endfor%}
我希望这有助于更好地理解templatetags。我发现文档在这个问题上有点混乱。根据您应该使用的文档:
Page.objects.public()
来源:您需要在需要页面的位置添加此内容
{{ request.current_page }}
这对我有用。
您可能需要在代码中的某个地方包含
{%load staticfiles%}
我知道您可以做到这一点,但如何使所有页面模板都可以使用它?八年后,文档仍然主要是示例。谢谢你的澄清@太棒了,我很高兴这仍然有用!