为当前用户设置所需的模型字段

时间:2016-07-01 15:42:23

标签: python django

我有一个模型,其中一个必填字段是当前登录的用户。在为模型创建新记录时,我会执行以下操作:

views.py

def post(self, request):
    bound_form = self.form_class(request.POST)
    if bound_form.is_valid():
        new_position = bound_form.save()

问题是,这仅在用户在表单上选择自己时才有效。我需要一种方法来自动设置当前用户,并且只是不在表单上显示用户字段。我试过这个:

def post(self, request):
    bound_form = self.form_class(request.POST)
    if bound_form.is_valid():
        new_position = bound_form.save(commit=False)
        new_position.user = request.user
        new_position.save()

但是这不起作用,因为bound_form无效,因为它缺少用户,该用户是模型上的必填字段。在尝试保存表单之前,还可以在何处设置用户?在模板中,还是视图的get方法?

1 个答案:

答案 0 :(得分:2)

您应该在exclude=('user',)的{​​{1}}中使用class Meta:。 @Daniel Roseman也是对的。