【发布时间】:2012-05-15 04:02:20
【问题描述】:
我遇到的问题是在我的模板中,有一个表单可以扩展到未知数量的输入(文件和文本)以提交图像和标题。我的照片模型有 2 个字段:ImageField 和 CharField。根据上传的图片数量,我想在我的视图中创建该数量的照片对象。
所以一个用户可能想要上传 2 张照片,或者另一个用户会上传 10 张。我在 dynamic form generation 上阅读了 Jacobian 的帖子,但这似乎仅限于已知数量的字段。
如何构造表单类来处理未知数量的参数?
到目前为止我有:
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() 时进行验证。
我有什么遗漏吗?
【问题讨论】:
-
看来你需要formset
-
看起来很有希望......现在将研究表单集......谢谢!
-
好像formset只是用来设置金额的?如果您希望用户能够扩大该数量怎么办?
标签: django django-forms