【问题标题】:DjangoCMS - Placeholders in templates do not show up in django cms structure viewDjangoCMS - 模板中的占位符不会显示在 django cms 结构视图中
【发布时间】:2018-08-08 20:32:40
【问题描述】:

我正在使用 djangoCMS 在我的网站模板中添加 CMS 功能,但我放置的占位符没有显示,我在我的 settings.py 中定义了我的 CMS_TEMPLATES 并将 {% load cms_tags sekizai_tags sorl_thumbnail %} 放在我的base.html 并在我的其他扩展 base.html 的模板上添加了 {% load cms_tags sekizai_tags %},但是当我登录 djangoCMS 管理员并访问我的页面时,我发现我的 structure view 中没有占位符。这可能是什么问题?

settings.py

CMS_TEMPLATES = [
      ('index.html','Home'),
      ('solutions.html','solutions'),
      ('commercial.html','Commercial Solar Solution'),
      ('residential.html','Residential Solar Solution'),
      ('on-grid.html','On grid solutions'),
      ('off-grid.html','Off Grid solutions'),
      ('water-heating.html','Solar Water Heating'),
      ('solar-water-pumping.html','Solar water pumping'),
      ('hybrid-grid.html','Hybrid Solutions'),
      ('outdoor-lighting.html','Outdoor Lighting'),
      ('contacts.html','Contacts'),
      ('terms-of-use.html','Terms of use'),

]

base.html

<!DOCTYPE html>
 {% load static %}

 {% load cms_tags menu_tags sekizai_tags  %}
 <html lang="en">



<head>
 <meta charset="utf-8">
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <title>{% block title %}{% endblock %}</title>
 {% render_block "css" %}

</head>

<body>{% cms_toolbar %}
 <ul> {% show_menu 0 0 100 100 %} </ul>
<div id="mySidenav" class="sidenav">
    <div class="div">
        <img src="{% static 'administration/css/images/icons/logo.png' %}" alt="" class="img-responsive">
    </div>
    <ul class="navlist">
        <a href="javascript:void(0)" class="closebtn" onclick="closeNav()">&times;</a>
        <li><a href="">Home</a></li>
        <li><a href="{% url 'administration:about' %}">About us</a></li>
        <li><a href="{% url 'administration:blog' %}">Blog</a></li>
        <li><a href="#">Projects</a></li>
        <li><a href="">Downloads</a></li>
    </ul>
</div>

<nav class="navbar navbar-default" role="navigation">
    <div class="container">
        <div class="navbar-header">
            <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#example-navbar-collapse">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
            </button>
            <a class="navbar-brand" href="#">
                <img src="{% static 'administration/css/images/icons/logo.png' %}" alt="" class="img-responsive">
            </a>
        </div>


</nav>

{% block content %}

{% endblock %}

{% render_block "js" %}

</body>

solutions.html

{% extends 'base.html' %}

{% block title %} Commercial pv solar heating solutions {% 
 endblock %}

 {% load static  %}

 {% load cms_tags %}
  {% block content %}

     <div class="water__heating--section">

        <div class="row">

           <div class="col-lg-6 solutions__content--image" id="commercial__banner--image">

                    <h4 class="small__title">support and Evaluation</h4>
                    <div class="small__content small__content--default">
                        Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima soluta nesciunt consequuntur esse consectetur
                    </div>

            </div>
            <div class="col-lg-6 solutions__content--box">

                <h1 class="heavy__title"> We Can Help your business <span class="emphasis">go solar</span> </h1>
                <div class="small__content ribbon__content--default">
                        {% placeholder "commercial section one" %}
                    </div>
            </div>  
        </div>
</div>
{% endblock %}

【问题讨论】:

    标签: python django django-cms


    【解决方案1】:

    在您的子模板(扩展基本模板)内应该有这样的内容:

    {% extends "base.html" %}
    {% load cms_tags %}
    
    {% block title %}{% page_attribute "page_title" %}{% endblock title %}
    
    {% block content %}
        <div>
            {% placeholder "feature" %}
        </div>
        <div>
            {% placeholder "content" %}
        </div>
        <div>
            {% placeholder "splashbox" %}
        </div>
    {% endblock content %}
    

    基础模板应该是这样的:

    {% load cms_tags menu_tags sekizai_tags %}
    <!doctype html>
    <html>
        <head>
            <title>{% block title %}This is my new project home page{% endblock title %}</title>
        </head>
        <body>
            {% cms_toolbar %}
            <div class="container">
                <ul class="nav">
                    {% show_menu 0 100 100 100 %}
                </ul>
                {% block content %}{% endblock content %}
            </div>
        </body>
    </html>
    

    【讨论】:

    • 我已经尝试过了,但仍然没有出现占位符
    • @DennisGathagu CMS_TEMPLATES 是否指向正确的子模板?你能显示你的模板和 CMS_TEMPLATES 设置吗?
    • @DennisGathagu 我试过你的例子,它对我有用。确保您使用正确的子模板dropbox.com/s/7jnya5f5cy4ap21/…
    • 我已经设法像您上面那样显示占位符,但是一旦我将内容添加到文本插件中,我就可以正常看到填充了我的内容的页面,但是一旦我发布并退出编辑视图或导航到另一个页面,内容没有显示在我模板中的占位符上,我只是得到空白字段
    猜你喜欢
    • 2017-02-16
    • 2017-09-19
    • 2015-05-20
    • 2013-09-26
    • 2014-08-31
    • 2015-03-16
    • 2015-05-21
    • 2017-10-26
    • 2013-03-22
    相关资源
    最近更新 更多