【问题标题】:How can I set a custom Template for djangocms-blog?如何为 djangocms-blog 设置自定义模板?
【发布时间】:2015-10-17 15:15:37
【问题描述】:

我有一个基于 djangocms 的网站,现在我想要一个应用程序来帮助一个小型博客部分。

现在,我已成功将djangocms-blog 集成到我的网站中,但是当我尝试查看帖子时,模板(我制作的自定义模板)没有呈现,帖子(由博客管理员制作)只是扔在页面上。

有人可以帮我解决这个问题吗?您需要任何其他信息来帮助我解决这个问题吗?

我的模板如下所示:

{% extends "base.html" %}
{% load cms_tags %}

{% block title %}{% page_attribute "page_title" %}{% endblock title %}

{% block content %}

    <div class="spacer"></div>
    <div class="page-header page-header-blog-post-1 white">
        <div class="page-header-container container">
            <div class="page-header-content">
                <h1 class="heading">BLOG</h1>
            </div>
        </div>
    </div>


    <div class="blog-container blog-single container">
        <div class="row">
            <div class="col-md-8 blog-content margin-bottom-70 clearfix">
                {% placeholder banner_leaderboard_top %}
            </div>
        </div>
        <div class="row">
            <div class="col-md-8 blog-content margin-bottom-70 clearfix">
                <article id="post-1" class="post-1 post format-standard">
                    <header class="entry-header">
                        <div class="post-thumbnail-area">
                            {% placeholder "post_header_image" or %}
                            <img src="/static/img/onepage-slide9.jpg" alt="image_blog"/>
                            {% endplaceholder %}
                        </div>
                    </header>
                    <div class="entry-content">
                        <div class="entry-title blog-info">
                            <h1 class="heading">{% placeholder "post_header_title" or %}POST_TITLE{% endplaceholder %}</h1>
                        </div>
                        {% placeholder "POST_BODY" or %}POST_BODY{% endplaceholder %}
                    </div>
                    <footer class="entry-footer">
                        <div class="entry-description">
                            <h6 class="post-date-classic">{% placeholder "post_date" or %}POST_DATE{% endplaceholder %}</h6>
                        </div>
                    </footer>
                </article>
                <div class="post-additional">
                    <script type="text/javascript">
                        // Popup window code
                        function newPopup(url) {
                            popupWindow = window.open(
                                    url, 'popUpWindow', 'height=700,width=800,left=10,top=10,resizable=yes,scrollbars=yes,toolbar=yes,menubar=no,location=no,directories=no,status=yes')
                        }
                    </script>
                    <ul class="post-share list-inline">
                        <li><a href="JavaScript:newPopup('https://www.facebook.com/sharer/sharer.php?u='+window.location.href)"><i
                                class="icon ion-social-facebook"></i></a></li>
                        <li><a href="JavaScript:newPopup('http://twitter.com/home/?status=Nice blog post - '+window.location.href);"><i
                                class="icon ion-social-twitter"></i></a></li>
                        <li><a href="JavaScript:newPopup('https://plus.google.com/share?url='+window.location.href); "><i
                                class="icon ion-social-googleplus"></i></a></li>
                    </ul>
                    <div class="post-navigation nav-links">
                        <ul class="post-controls list-inline">
                            <li>
                                {% placeholder "prev_post" or %}
                                <a class="post-prev" href="#"><i class="icon ion-ios7-arrow-thin-left"></i></a></li>
                                {% endplaceholder %}
                            <li>
                                {% placeholder "next_post" or %}
                                <a class="post-next" href="#"><i class="icon ion-ios7-arrow-thin-right"></i></a></li>
                                {% endplaceholder %}
                        </ul>
                    </div>
                </div>
                <div class="author-bio">
                    <div class="row">
                        <div class="author-avatar col-xs-4 col-sm-3 col-md-3 visible-desktop">
                            {% placeholder "author_img" or %}
                            <img src="/static/img/image-8.jpg" alt="image_blog"></div>
                            {% endplaceholder %}
                        <div class="author-details white col-md-9">
                            <h3>{% placeholder "author_name" or %}AUTHOR_NAME{% endplaceholder %}</h3>
                            <p>{% placeholder "author_body" or %}AUTHOR_BODY{% endplaceholder %}</p>
                        </div>
                    </div>
                </div>
                {% placeholder banner_leaderboard_bottom %}
            </div>
            <div class="col-md-4">
                <div class="sidebar">

                    <aside id="recent-posts-2" class="widget widget_recent_entries">
                        <div class="widget-title">
                            <h5 class="heading">RECENT POSTS</h5>

                            <div class="fancy-line-small"></div>
                        </div>
                            {% placeholder "post_recent" or %}
                            <ul>
                                <li><a href="#">Recent blog post</a></li>
                            </ul>
                            {% endplaceholder %}
                    </aside>

                {% placeholder banner_square_right %}
                </div>
            </div>
        </div>
    </div>
{% endblock %}

一些管理 djangocms-blog 的图片:

所以,我希望将博客管理员的标题应用到我的模板上,而不是 &lt;h1 class="heading"&gt;BLOG&lt;/h1&gt; 等等 datecategory 等等

【问题讨论】:

    标签: django django-templates django-cms


    【解决方案1】:

    如果您想覆盖已安装的应用所使用的模板,您只需在模板目录中模仿相同的模板路径即可。

    CMS博客模板可以在here找到。

    因此,要覆盖 CMS 博客模板,您应该决定需要覆盖哪个模板,在这种情况下,它听起来像 post_detail.html,因为您关心的是帖子的显示方式。

    所以在您的项目中,您需要创建类似的东西; myproj/templates/djangocms_blog/post_detail.html

    然后系统将从 site-packages 文件夹加载那个而不是 post_detail.html

    【讨论】:

    • 此外,您可以在博客的配置中添加djangocms_blog 以外的模板前缀。这使您可以为网站上的不同博客使用不同的模板。
    猜你喜欢
    • 2015-10-04
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 1970-01-01
    • 2013-09-07
    • 2011-06-16
    相关资源
    最近更新 更多