我正在尝试使用来自request.session的数据在Post请求中的views.py中设置表单字段值,然后将该数据保存到数据库。但是,我无法弄清楚如何做到这一点。这是我尝试过的:
if self.form.is_valid():
#attempt 1
request.POST._mutable = True
self.form.data['field'] = request.session['key']
#attempt 2
self.form.fields['field'] = request.session['key']
#attempt 3
self.form.cleaned_data['field'] = request.session['key']
self.object = self.form.save()
有没有办法做到这一点?
经过反复试验后我发现它是可能的,但必须在表单验证声明之外完成。我是这样做的:
def post(self, request, *args, **kwargs):
request.POST._mutable = True
self.form.data['field'] = request.session['key']
if self.form.is_valid():
........