0
我有用戶在我的網站中創建列表,我使用通用的CreateView來允許他們創建它們。列表中的一個字段是所有者(誰創建它)。Django:將字段添加到CreateVView.form_valid中的ModelForm
要求用戶選擇所有者是沒有意義的,因爲創建它的用戶已經是所有者。
所以,我傳遞給CreateView一個「form_class」而不是「model」參數,其中form_class排除了所有者字段。
爲了保存表格,我需要將所有者添加到它。
我subclassed CreateView並添加一個form_valid方法,但我遇到問題做這個。
到目前爲止,我
class MyCreateView(CreateView)
form_class = ListForm
def form_valid(self, form):
form.??? = self.request.user -->> expression of the left side
return super(MyCreateView, self).form_valid(form)
它應該是簡單的東西。在this thread中,他們說使用self.object.owner
,但self.object是None
類型。
我該如何處理? 感謝
我使用PDB的form_valid被稱爲之後。 self.instance返回「DoesNotExist」並且self.instance返回AttributeError:'MyCreateView'對象沒有屬性'instance'。 ListForm也是一個ModelForm – duduklein 2011-12-22 14:23:13
我添加了form.instance = MyModel(),然後form.instance.owner = self.request.user。這個apprently工作,但是當模型保存到數據庫時,顯示的表單中的所有字段都是空的。 – duduklein 2011-12-22 14:43:12
我誤解了你的帖子。更新我的回答 – ojii 2011-12-22 18:40:22