如何使用不同的 id 多次打印 Django 表单

How to print a Django Forms many times with different id

我创建了这个表单,它是一个多输入选项,由查询集填充:

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

在同一个 html 表单中,我想多次打印 TestForm。

在 views.py 中是否可以创建一个 TestForm 数组并使用 for 循环在模板中打印?

您可以创建一个表单集并将其传递给您的模板:

 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 了解更多信息