是否有可能使用django表单可变数量的字段?可以使用Django形式的可变数量输入吗?
的具体应用是这样的:
,因为他们想要的图像上传表单上的用户可上传的图片。一旦图片上传,他们将被带到一个页面,在那里他们可以给图片一个名字和描述。图片的数量取决于用户选择上传的数量。
因此我该如何让django使用可变数量的输入字段(如果需要,可以作为参数传递)来生成表单?
编辑:自article mentioned in jeff bauer's answer被写入以来,有些事情发生了变化。
即这行代码,似乎没有工作:
# BAD CODE DO NOT USE!!!
return type('ContactForm', [forms.BaseForm], { 'base_fields': fields })
因此,这里是我想出了...
我用了答案:
from tagging.forms import TagField
from django import forms
def make_tagPhotos_form(photoIdList):
"Expects a LIST of photo objects (ie. photo_sharing.models.photo)"
fields = {}
for id in photoIdList:
id = str(id)
fields[id+'_name'] = forms.CharField()
fields[id+'_tags'] = TagField()
fields[id+'_description'] = forms.CharField(widget=forms.Textarea)
return type('tagPhotos', (forms.BaseForm,), { 'base_fields': fields })
注意标记不是django的一部分,但它是免费且非常有用的。检查出来:django-tagging
几乎放弃你接受的答案,杰夫的只是一点点清晰的(链接帮助了很多) – Jiaaro 2009-01-05 18:30:43