我想構建一個Django應用程序,該應用程序允許使用其API在TagChimp上搜索電影,然後將正確的電影存儲在Web應用程序的數據庫中。這裏是如何,我認爲它可以工作:如何顯示要插入數據庫的對象集合
這是我小的應用程序應該做的事情:
- 讓用戶對電影標題輸入搜索詞
- 顯示發現電影的某些屬性如標題,年份和圖片,但保持周圍
- 等待其他屬性,爲用戶挑選合適的電影,他一直在尋找和使用電影模式
我編寫了一個傳遞電影標題的視圖,它使用一個輔助對象從TagChimp獲取電影。它解析XML並創建一個包含所有感興趣的元數據的字典數組,並在頁面上顯示搜索結果。
下一步是用戶選擇正確的電影,然後將其轉換爲模型對象並插入到數據庫中。
我是django的新手,所以我不確定如何存儲這個臨時搜索結果,其中用戶選擇了正確的搜索結果。有沒有辦法臨時創建模型對象,只保存用戶選擇的對象?這是全部在一個視圖中實現還是爲流程的每個步驟創建單獨的視圖(輸入搜索詞 - 顯示結果並讓用戶選擇正確的視圖 - 將影片插入到數據庫中)?
由於Bialeki指出我有這個問題處理的兩種可能的方式:
- 保存的每條記錄在步驟2中的形式的隱藏價值的TagChimpID和啓動第二請求的只是搜索選擇TagChimpID或
- 勉強保持所取得的電影在步驟2左右,所以我可以插入影片馬上
第一種選擇是,也許更容易實現,但需要兩個請求到外部數據源,而第二選擇離子可能會更快,因爲只需要一個外部請求。
因此,它是正確的,我必須包括可能的電影,這是不是在選擇列表中顯示的所有屬性,如形式隱藏字段?所以如果我在用戶選擇電影后得到表單的數據,我必須再次生成一個電影對象,然後保存它? – GorillaPatch
我就是這麼做的。你可以使用Django會話並在那裏存儲模型,但是你的頁面不是無狀態的。另一件需要考慮的事情是,如果您最初查詢電影的地方生成了一個ID(從您對問題的描述中可以看出這一點),那麼您可以將其存儲起來,然後在保存時查找該ID。 – Bialecki
感謝您的回答。我用圖片更新了問題以說明數據流。我認爲在這種情況下簡單地存儲TagChimp的記錄ID就很容易了。但是,如果沒有這樣的ID,我想我將不得不介紹會議。現在,如果用戶獲得查詢的結果太多,我必須運行分頁。 – GorillaPatch