我有用户在我的网站中创建列表,而我正在使用通用的CreateView来创建它们。列表的一个字段是所有者(创建它)。
要求用户选择所有者是没有意义的,因为创建它的用户已经是所有者。
所以,我将传递给CreateView一个“form_class”而不是一个“model”参数,其中form_class排除了所有者字段。
为了保存表单,我需要添加所有者。
我将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
类型。
我应该如何处理? 感谢
答案 0 :(得分:1)
您正在寻找form.instance.owner = request.user
然后调用超级