谢谢 jlnabais 对于帖子链接,我之前确实看过那个答案但是并没有完全理解它,所以当你发布它时我回去想出来了。
jlnabais
由于我使用的是ajax,后期数据被转换为unicode字符串,因此当我尝试访问数据时,它无法解析字符串。如果我没有ajax这样做,那么它的工作原理。因为我坚持使用ajax,所以我用过 urlparse 和 QueryDict 解析unicode数据并将其转换为字典。
urlparse
QueryDict
RegisterFormset = modelformset_factory(Register, form=ModbusRegistersForm) if request.method == 'POST': my_dic = dict(urlparse.parse_qsl(request.POST['form'])) modbus_device = CreateModbusForm(my_dic) if modbus_device.is_valid(): port = modbus_device.cleaned_data['iPort'] slave = modbus_device.cleaned_data['iSlave'] ip = modbus_device.cleaned_data['sIP'] else: raise ValueError(modbus_device.errors) registers = RegisterFormset(QueryDict(request.POST['form'])) for reg in registers.forms: if reg.is_valid(): container = RegisterContainer() container.reg_name = reg.cleaned_data['sRegisterName'] container.reg_start_addr = reg.cleaned_data['iStartingAddr'] container.reg_range = reg.cleaned_data['bRange'] container.reg_type = reg.cleaned_data['ixRegisterType'].ixRegisterType container.reg_offset = reg.cleaned_data['iOffset'] register_list.append(container) else: raise ValueError(registers.errors)