Django:处理未知数量字段的动态表单

Django: Dynamic form for handling unknown number of fields

我遇到的问题是在我的模板中,有一个表单可以扩展到未知数量的输入(文件和文本)以提交图像和标题。我的照片模型有两个字段:imagefield&charfield。根据上载的图像数量,我希望在视图中创建该数量的照片对象。

因此,用户可能希望上载2张照片,或者其他人将上载10张。我读过Jacobian关于动态形式生成的文章,但这似乎只限于已知数量的领域。

如何构造窗体类以处理未知数量的参数?

到目前为止,我有:

1
2
3
4
5
6
7
8
9
10
11
12
13
class PhotoForm(forms.Form):        

def __init__(self, *args, **kwargs):
    super(PhotoForm, self).__init__(*args, **kwargs)
    print args
    self.fields['photo'] = forms.ImageField(
        label=_("Photo 1 (Required)"),
        widget=forms.FileInput( attrs={'class':''}),
            required=True)
    self.fields['photo_desc'] = forms.CharField(
        label=_("Photo 1 Description"),
        widget=forms.TextInput(),
        required=True)

我认为我需要循环遍历将创建n个字段的参数。当我调用Form.Is撘valid()时,它将允许窗体进行验证。

这里面有什么我不知道的吗?


您可以使用JavaScript创建表单,然后使用Django的Formset处理表单。

下面是一个与代码示例类似的问题