2019獨角獸企業重金招聘Python工程師標準>>>
1.添加新條目
1>編寫用于添加新條目的表單
在forms.py中創建一個與模型Entry相關聯的表單
1處給字段'text'指定一個空標簽
2處定義小部件widgets,widgets是一個HTML表單元素
2>定義new_entry的URL模式
在用于添加新條目的頁面的URL模式中,需要包含實參topic_id,因為條目必須與特定主題相關聯。請求的URL與這個模式匹配時,Django將請求和主題ID發送給函數new_entry()
3>編寫視圖函數
1處表示使用形參topic_id來獲得正確的主題
2,3處都與上一節編寫的new_topic一樣的
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,上圖紅圈就是哈
?