Джанго, Шаблон

Я начинающий Django и язык шаблонов...

Вот мой код:

base.html

{% block news%}
    <div class="row">
        <div class="span6">
            <div class="news-content clearfix">
                <div class="news-title"><a href="#">Манай хамт олны тухай</a></div>
                    <div class="text clearfix>
                        <img src="{{STATIC_URL}}img/image1.jpg">
                        # here is some text
                    </div>
                    <div class="pull-right">00                              
                        <a class="btn btn-small" href="#">Дэлгэрэнгүй</a>
                    </div>
                </div>
            </div>
            <div class="span6">
                <div class="news-content clearfix">
                    <div class="news-title"><a href="#">#title</a></div>
                        <div class="text clearfix">
                            <img src="{{STATIC_URL}}img/image2.jpg">
                            # text-2
                        </div>
                        <div class="pull-right">
                            <a class="btn btn-small" href="#">Дэлгэрэнгүй</a>
{% endblock %}

news_list.html

{% extends "base.hmtl"%}

{% block news %}
    {% for news in news_list %}
        ######## here i want to display last 2 news at row #########
    {% endfor %}
{%  endblock %}

1 ответ

Вы все неправильно поняли.

base.html должен содержать весь код, который должен быть повторно использован на вашем сайте. Например, такие файлы, как CSS и javascript, включены в base.html

Внутри base.html вы должны включить block то есть для хранения кода, который варьируется от страницы к странице. Вы также можете использовать несколько блоков, таких как верхний и нижний колонтитулы.

Когда шаблон отображается, запрошенный шаблон "импортирует" base.html, используя {% extends "base.html" %}. После импорта, block определенный в base.html заменяется блоком в запрошенном шаблоне.

Что касается вашего вопроса, код, который вы написали в base.html, который определяет, как отображать ваши новости, должен находиться в файле news_list.html, в цикле for.

Я предполагаю, что список новостей QuerySet т.е. результат запроса к базе данных и содержит атрибуты title,content так далее

{% extends "base.html" %}

{% block news %}
    {% for news in news_list %}
        <div class="row">
            <div class="span6">
                <div class="news-content clearfix">
                    <div class="news-title"><a href="#">{{ news.title }}</a></div>
                    <div class="text clearfix>
                        <img src="{{STATIC_URL}}img/image1.jpg">
                    </div>
                    <div class="pull-right">00                              
                        <a class="btn btn-small" href="#">{{ whatever }}</a>
                    </div>
                </div>
            </div>
    {% endfor %}
{% endblock %}

И ваш base.html

<html>
    CSS,JS here if any
    <body>
        {% block news %}
        {% endblock %}
    </body>
</html>
Другие вопросы по тегам