更新时间:2023-12-04 10:27:22
您不需要将用户传递给表单,所以不要t覆盖 get_form
方法。您已经通过在视图中设置 fields
从模型表单中排除了用户 field
,因此您不需要自定义模型形式。
You don't need to pass the user to the form, so don't override the get_form
method. You have already excluded the user field
from the model form by setting fields
in your view, so you shouldn't need a custom model form either.
应该足以覆盖 form_valid
方法,并在保存表单时设置用户。
It should be enough to override the form_valid
method, and set the user when the form is saved.
from django.http import HttpResponseRedirect
class CreateMeasurement(CreateView):
model = Measurement
fields = ['date']
success_url = reverse_lazy('list_measurements')
def form_valid(self, form):
obj = form.save(commit=False)
obj.user = self.request.user
obj.save()
return HttpResponseRedirect(self.get_success_url())