【发布时间】:2015-10-13 17:45:36
【问题描述】:
我有多个重复的表单(模型表单),用于生成用于创建设备的布局,并为每个表单添加了前缀。 (由于其他原因不能使用表单集)
表格:
class CreateModbusForm(ModelForm):
class Meta:
model = ModbusDevice
fields = ['ixModbusDevice', 'sModbusName','iPort', 'iSlave', 'sIP']
widgets = {
'sModbusName': TextInput(attrs={'placeholder': 'Device Name','class': 'form-control','data-form': '0',}),
'iPort': TextInput(attrs={'placeholder': 'Port','class': 'form-control','data-form': '0',}),
'iSlave': TextInput(attrs={'placeholder': 'Slave id','class': 'form-control','data-form': '0',}),
'sIP': TextInput(attrs={'placeholder': 'Modbus IP address','class': 'form-control','data-form': '0',})
}
view:
modbus_qset = ModbusDevice.objects.all()
if modbus_qset:
for device in modbus_qset:
modbus_form = CreateModbusForm(instance=device, prefix="modbus-id_" + str(device.pk))
我遇到的问题是当我将数据发布回更新(ajax 发布)时,我的表单总是出现This field is required 错误。
if request.method == 'POST':
my_dic = dict(urlparse.parse_qsl(request.POST['form']))
modbus_device = CreateModbusForm(my_dic, prefix='modbus-id_2')#hard coded for testing
不管我做什么,我的表单都不会因为这个错误而通过is_valid(),但我不知道如果我传递帖子数据,为什么它会给我这个
(我必须转换我的 request.POST['form'],因为它是从 ajax 调用序列化为 json 并最终成为 unicode 而不是 QueryDict)
【问题讨论】:
标签: ajax django django-forms django-views