2016-01-21 46 views
-1

我創造了這個形式,這是一個多輸入選項,通過查詢集填充:如何打印Django的形式多次與不同的ID

class TestForm(forms.ModelForm): 
    field = ModelChoiceField(queryset=TestTable.objects.all().order_by('desc1')) 
    class Meta(object): 
     model = BlockValue 
     fields =() 

Whithin相同的HTML表單,我想打印TestForm很多次。

在views.py中可以創建一個TestForm的數組並使用for循環在模板中打印?

+1

是的,爲什麼不嘗試呢? – Sayse

+0

https://docs.djangoproject.com/en/1.9/ref/forms/api/#configuring-html-label-tags搜索auto_id,這會給你想法 –

+0

https://docs.djangoproject.com/en /1.9/topics/forms/modelforms/#model-formsets –

回答

3

您可以創建一個表單集,並把它傳遞給你的模板:

TestFormSet = formset_factory(TestForm, extra=3,) 

然後在您的視圖:

def test_form_view(request): 
    context = RequestContext(request) 

    if request.method == 'GET': 

     formset = TestFormSet() 


    return render_to_response('yourapp/test_form_template.html', {'formset': formset}, context) 

,並在您的模板:

{% for form in formset %} 
    {{form.as_table}} 
{% endfor %} 

看看在docs獲取更多信息