1. 程式人生 > >Django 開發學習筆記(7)- 開發特定主題顯示的頁面

Django 開發學習筆記(7)- 開發特定主題顯示的頁面

這一節其實沒有什麼新的知識,我們只是把開發頁面的一般流程再和大家重複一下。
1、在 learning_logs 模組配置 urls
2、編寫 views
3、編寫模板 topic.html

下面是具體編寫步驟:
1、在 learning_logs 模組配置 urls

url(r'^topic/(?P<topic_id>\d+)$',views.topic,name='topic')

2、編寫 views

def topic(request, topic_id):
    """顯示單個話題以及所有的條目"""
    topic = Topic.objects.get(pk=topic_id)
     # 還記得我們在 shell 那一節做的測試嗎? 這個 entry_set 其實是一個字串拼接
entries = topic.entry_set.order_by("-date_added") context = {'topic': topic, "entries": entries} return render(request, "blog/topic.html", context)

知識點:

entries = topic.entry_set.order_by("-date_added")

“-date_added” 表示按照 “date_added” 這個欄位降序排序。

3、編寫模板 topic.html

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

{% block content %}

    當前顯示的話題:
{{ topic }} <ul> {% for entry in entries %} <li> <p>新增日期:{{ entry.date_added | date:'M d,Y H:i' }}</p> 正文內容:<p>{{ entry.text | linebreaks }}</p> <p>關鍵字:{{ entry.key_words }}</p> </li
>
{% empty %} <li>在當前話題下還沒有部落格文章被建立。</li> {% endfor %} </ul> {% endblock content %}

知識點:
1、格式化日期字串:新增日期:{{ entry.date_added | date:'M d,Y H:i' }}
2、{{ entry.text | linebreaks }}

最後,在顯示所有話題列表的頁面 topics.html ,新增到單個話題的連結。

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

    <ul>
        {% for topic in topics %}
            <li>
                <a href="{% url 'blog:topic' topic.id %}">{{ topic }}</a>
            </li>

        {% empty %}
            <li>話題沒有被建立。</li>

        {% endfor %}
    </ul>

{% endblock content %}

知識點:這樣表示連結:{% url 'blog:topic' topic.id %}