2015-05-26 66 views
0

問題是如何在Django表單提交中從一個表單插入乘法值。表單只有一個輸入,其中要求不同的數字。我知道模型集表單和內聯表單,但這是不同的問題。該表單僅作爲一個表單字段被設置爲HTML頁面。而在一些jQuery中,我創建了大約10個具有相同表單名稱的其他輸入值。更好的解釋我將提供代碼。Django插入來自一個表單的乘法輸入值

models.py

class TestModel(models.Model): 
    id = models.AutoField(primary_key=True) 
    code = models.CharField(max_length=255) 
    organization = models.ForeignKey('Organization') 
    prod_serv = models.ForeignKey('Product_service') 
    out_invoice = models.ForeignKey('OutgoingInvoice') 

在Django模型簡單的模型。

forms.py

class ModelForTest(forms.ModelForm): 
    class Meta: 
     model = TestModel 
     exclude = ('organization','out_invoice', 'prod_serv',) 

views.py

if request.method == 'POST': 
    form5 = ModelForTest(request.POST, prefix='form5') 
    if form5.is_valid(): 
     u = form5.save(commit=False) 
     for code in form5.cleaned_data['code']: 
      u.organization_id = org_id.id 
      u.out_invoice_id= b.id 
      test = Product_service.objects.get(product_code=code) 
      u.prod_serv_id = test.id 
      u.save() 
    else: 
     form5 = ModelForTest(prefix='form5') 

return render_to_response(template, dict(form5=form5), context_instance=RequestContext(request)) 

這是問題for循環,在這裏我必須從code命名字段提取所有的值。我只是從HTML獲得第一個輸入值,其他值不會在for loop內循環。這怎麼做,我的意思是如何從HTML中提取所有的值,並在表單提交後插入到模型中。

+0

我不明白這一點在所有。你在做什麼?爲什麼?爲什麼沒有合適的表單域? –

回答

0

嘗試改變所有條目,在你的模板name=codename=code[]

做到這一點使用Django表格 - 看@Daniel羅斯曼回答這裏

https://stackoverflow.com/a/8802119/3033586

FIELD_NAME_MAPPING = { 
    'code': 'code[]' 
} 
+0

Thx的答案,我會嘗試與解決方案。 @madzohan – marin