如何使用django在多个页面上发布

时间:2017-08-14 17:19:42

标签: python html django

对于一个项目,我们正在尝试建立一个类似论坛的基础网站;但是,我们试图在多个页面上发布而不是一个页面,并且不能在允许将帖子添加到该页面的部分上添加另一个扩展:

{% extends 'blog/base.html' %}

{% block content %}
    <div class="post">
        {% if post.published_date %}
            <div class="date">
                {{ post.published_date }}
            </div>
        {% endif %}
        {% if user.is_authenticated %}
     <a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"></span></a>
{% endif %}
        <h1>{{ post.title }}</h1>
        <p>{{ post.text|linebreaksbr }}</p>
    </div>
{% endblock %}

有没有办法让网站使用其他方法在多个页面上显示这些帖子?

2 个答案:

答案 0 :(得分:0)

我猜你问的是“include”关键字?和“带”模板标签?

<强> post_template.html

<div class="post">
        {% if post.published_date %}
            <div class="date">
                {{ post.published_date }}
            </div>
        {% endif %}
        {% if user.is_authenticated %}
     <a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"></span></a>
{% endif %}
        <h1>{{ post.title }}</h1>
        <p>{{ post.text|linebreaksbr }}</p>
    </div>

<强> some_page.html

{% extends "base.html" %}
{% with some_post as post %}{% include "post_template.html"%} {% endwith %}

<强> other_page.html

{% extends "base.html" %}
{% with some_other_post as post %}{% include "post_template.html"%} {% endwith %}

答案 1 :(得分:0)

假设您传递的是名为posts的词典列表,您希望帖子显示在哪里:

{% for post in posts %}
    {% include 'templates/post.html' %}
{% endfor %}

templates/post.html

<div class="post">
    {% if post.published_date %}
        <div class="date">
            {{ post.published_date }}
        </div>
    {% endif %}
    {% if user.is_authenticated %}
    <a class="btn btn-default" href="{% url 'post_edit' pk=post.pk %}"><span class="glyphicon glyphicon-pencil"></span></a>
    {% endif %}
    <h1>{{ post.title }}</h1>
    <p>{{ post.text|linebreaksbr }}</p>
</div>

请参阅:How do you insert a template into another template?