DRY方式声明几个类似的表单字段

时间:2016-09-29 19:25:27

标签: python django

假设我正在尝试使用多个FileField声明一个(django)Form类:

class = MyForm(forms.Form):
    file_0 = forms.FileField()
    file_1 = forms.FileField()
    ...

我有大约20个顺序输入要声明 - 避免像笨蛋一样输入这个内容的最佳方法是什么?

2 个答案:

答案 0 :(得分:4)

您可以使用Django动态表单生成

from django import forms

class MyForm(forms.Form):

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)

        for i in range(20):
            self.fields["file_%d" % i] = forms.FileInput()

查看文档here

答案 1 :(得分:1)

使用循环:

files = [forms.FileInput() for i in range(20)]