假设您有一个ModelForm
,您已经将request.POST
中的数据绑定到该。如果 ModelForm 中有一些字段我不希望用户必须填写,因此没有显示在表单中(例如:用户已经登录,我不希望用户填写"作者"字段,我可以从request.user
中获取),"Django"的方式是什么?
class RandomView(View):
...
def post(self, request, *args, **kwargs):
form = RandomForm(request.POST)
form.fill_remaining_form_fields(request) ### How would you implement this ???
if form.is_valid():
...
我尝试将字段添加到表单实例(例如:self.data['author'] = request.user
),但鉴于这是一个QueryDict
它是不可变的,因此显然不是执行此操作的正确方法。
有什么建议吗?
我的错,Django 文档实际上解释了如何在 https://docs.djangoproject.com/en/4.0/topics/forms/modelforms/#selecting-the-fields-to-use 中执行此操作(请参阅注释)。