我有一個基本的日記應用程序,它有兩個視圖:添加和編輯視圖。當用戶在添加視圖上點擊「添加」按鈕時,數據被保存到數據庫中並顯示簡單的信息。當用戶在編輯視圖上點擊「更新」按鈕時,數據被更新並且添加最後一個更新標記。鏈接視圖並在它們之間傳遞數據的最佳方式是什麼?
到目前爲止,這些觀點獨立運行。編輯視圖默認加載上次保存的條目並允許更新。
我想更新它,以便在添加視圖上成功添加新的日記條目後,它將轉換到編輯視圖以允許用戶在需要時編輯和更新。如何將視圖鏈接在一起並將相關數據傳遞給編輯視圖以知道要獲取哪個條目(數據庫對象)進行編輯?此外,我希望能夠獨立使用編輯視圖來獲取指定的日記條目,例如在GET上。所以編輯視圖對於任何人來說都是不可知的,它只知道要加載哪個日記條目。
用於添加和編輯查看代碼,因爲他們現在的樣子,顯示如下:
def addEntry(request):
entryForm = None
if request.method == "POST":
entryForm = EntryForm(request.POST)
if entryForm.is_valid():
entryForm.save(commit = True)
request.method = "GET"
return entrySubmitted("Entry has been submitted")
else:
logger.info(entryForm.errors)
else:
# Set up view with new entry form
entryForm = EntryForm()
template = getEntryViewTemplate(entryForm)
return render(request, "DiaryEntry.html", template)
def editEntry(request):
# Get the latest entry from the database
entry = Entry.objects.last();
if request.method == 'GET':
entryForm = EntryForm(instance = entry)
else:
entryForm = EntryForm(request.POST, instance = entry)
if entryForm.is_valid():
entryForm.setLastUpdated(datetime.now())
entryForm.save(commit = True)
templateData = getEntryViewTemplate(entryForm)
return render(request, "EditEntry.html", templateData)
由於事先
弗朗西斯
當然,你只需要一個ID參數傳遞給編輯視圖,並用它來確定哪些對象進行編輯?本教程向您展示瞭如何做到這一點。 –
@DanielRoseman你指的是哪個教程?請原諒我是Django和Python的新手。謝謝。 –
大多數時候當有人提到鏈接視圖時,他們完全忽略了你正在爲多個用戶編寫一些東西的事實。相反,你正在重定向到與特定視圖對應的* url * – Sayse