2015-10-13 91 views
0

我有多個重複表單(模型表單),用於生成用於創建設備的佈局,併爲每個表單添加了前綴。 (不能用其他原因表單集)Django表單此字段在請求後是必需的錯誤。POST

形式:

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)) 

enter image description here

我遇到問題是,當我發佈數據回更新(阿賈克斯後),我窗體始終有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的)

回答

0

,所以我意識到我nameid的在我的HTML有一個格式錯誤。 Django會生成一個像id_modbus-id_2-iPort的ID,但我的問題是我的ID有一個下劃線而不是連字符。所以我的編號是id_modbus-id_2_iPort和django沒有認出它

相關問題