我遇到了Django中的一個問題,我想這可能是因爲我沒有正確理解基於類的視圖是如何工作的。django 1.3基於類的視圖 - > FormView,初始化請求之間的結轉?
基本上我有一個ListView和一個FormView。一個是列出對象,另一個是編輯。
在瀏覽器中,如果我從列表視圖導航到現有對象的窗體視圖,我會得到預期的結果:表單字段用期望值填充。
相同的formview用於呈現用戶可以創建對象的空白表單。
如果我從現有對象的窗體導航到新對象的窗體視圖或列表視圖,然後導航到新對象的窗體視圖,則初始(即,CBV的self.initial)預先填充來自現有對象的信息先前訪問的對象。
很顯然,我期待self.initial在新的獲取請求開始時變爲空白。
我的理解是每個請求都會生成一個基於類的視圖的新實例。最初如何跨越請求繼續進行? 我基於一些調試來得出這個結論。下面的get_initial()中的相關行。
def get_initial(self, **kwargs):
initial = super(M_EditNewsletterView, self).get_initial(**kwargs)
fs_logger.debug('initial immediately after super -> %s' % initial)
SO建議這是類似的,但我不明白與upvote的答案。 Django(trunk) and class based generic views: one form's initial data appearing in another one's
任何人都可以幫我解釋一下怎麼回事?
感謝您的回覆David。很不幸的是,不行。我重寫get_initial ....當前修復問題的方法實際上是將get_initial()中的第一行設置爲initial = {} –