Django形态:在验证之前修改已发布数据的最佳方法是什么?

k2arahey  于 2022-12-24  发布在  Go
关注(0)|答案(2)|浏览(111)
form = ContactForm(request.POST)

# how to change form fields' values here?

if form.is_valid():
    message = form.cleaned_data['message']

在验证数据之前,是否有一个好的方法来删除空白,修改一些/所有字段等?

zkure5ic

zkure5ic1#

您应该通过在request.POST(QueryDict的示例)上调用copy来使其可变,然后更改值:

post = request.POST.copy() # to make it mutable
post['field'] = value
# or set several values from dict
post.update({'postvar': 'some_value', 'var': 'value'})
# or set list
post.setlist('list_var', ['some_value', 'other_value']))

# and update original POST in the end
request.POST = post

QueryDict docs -请求和响应对象

e5nqia27

e5nqia272#

您也可以尝试使用request.query_params
1.首先,将query_params_mutable属性设置为True
1.更改所需的所有参数。

request.query_params._mutable = True
request.query_params['foo'] = 'foo'

这样做的好处是可以避免使用request.POST.copy()的开销。

相关问题