我有一个表单字段,在渲染时需要json对象作为其值。 提交表单时,它返回一个逗号分隔的id字符串作为其值(不是json字符串)。但是如果表单没有验证,我想将这个id字符串转回json字符串,以便正确显示(使用jquery正确渲染json对象)。
我该怎么做?
我在考虑覆盖form.clean方法,但是当我尝试更改self.data ['fieldname']时,我收到错误'此QueryDict实例是不可变的'
当我试图更改self.cleaned_data ['fieldname']时,它对该字段的值没有任何影响。
由于
答案 0 :(得分:0)
我最终做了
if request.method == 'POST':
new_data = request.POST.copy()
form = MyForm(data=new_data)
if form.is_valid():
form.save()
else:
new_data['myField'] = '[{'id':1,'value':some json object}]'
我在视图中而不是在表单类中执行此操作。我不知道这是否是最好的方法,但它对我有用。执行request.POST.copy()允许我更改post变量,这是我首先遇到的错误之一。
希望这有助于某人