1.添加新條目html
1>編寫用於添加新條目的表單數據庫
在forms.py中建立一個與模型Entry相關聯的表單瀏覽器
1處給字段'text'指定一個空標籤函數
2處定義小部件widgets,widgets是一個HTML表單元素orm
2>定義new_entry的URL模式htm
在用於添加新條目的頁面的URL模式中,須要包含實參topic_id,由於條目必須與特定主題相關聯。請求的URL與這個模式匹配時,Django將請求和主題ID發送給函數new_entry()對象
3>編寫視圖函數blog
1處表示使用形參topic_id來得到正確的主題get
2,3處都與上一節編寫的new_topic同樣的it
4處表示若是請求方法是POST,咱們就對數據進行處理:建立一個EntryForm實例,使用request對象中的POST數據來填充它
5處調用save()時,咱們傳遞了實參commit = False,目的是讓Django建立一個新的條目對象,並將其存儲到new_entry中,但不將它保存到數據庫中
6處表示咱們將new_entry的屬性topic設置爲在這個函數開頭從數據庫中獲取的主題,而後調用save(),這將把條目保存到數據庫,並將其與正確的主題相關聯
7處表示調用HttpResponseRedirect()將用戶重定向到顯示新增條目所屬主題的頁面,用戶將在該頁面的條目列表中看到新添加的條目
4>編寫模板new_entry.html
1處表示添加一個連接,讓用戶知道他是在哪一個主題中添加條目
2處表單實參action包含URL中的topic_id值,讓視圖函數可以將新條目關聯到正確的主圖,實參method讓瀏覽器以POST方式提交數據
5>連接到頁面new_entry
咱們須要在顯示特定主題的頁面中添加到頁面new_entry的連接
6>運行manage.py
點擊Topics下面的任一一個主題,好比Dota2吧
點擊add new entry
點擊add entry
網頁跳轉到Dota2的entries下,並列出新添加的entry,上圖紅圈就是哈