2016-01-21 21 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获取更多信息