Django:在CreateVView.form_valid中向ModelForm添加字段

时间:2011-12-22 14:18:00

标签: django-generic-views django-forms

我有用户在我的网站中创建列表,而我正在使用通用的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类型。

我应该如何处理? 感谢

1 个答案:

答案 0 :(得分:1)

您正在寻找form.instance.owner = request.user然后调用超级