我有一个模型,其中一个必填字段是当前登录的用户。在为模型创建新记录时,我会执行以下操作:
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方法?
答案 0 :(得分:2)
您应该在exclude=('user',)
的{{1}}中使用class Meta:
。 @Daniel Roseman也是对的。