Python 使用formset进行多个文件上载?

Python 使用formset进行多个文件上载?,python,django,django-forms,Python,Django,Django Forms,models.py class Album(models.Model): file_upload = models.FileField(upload_to=content_file_name) name_content = models.CharField(max_length=100) 函数就在这里 def content_file_name(instance, filename): upload_dir = os.path.join('uploads', 'reso

models.py

class Album(models.Model):
    file_upload = models.FileField(upload_to=content_file_name)
    name_content = models.CharField(max_length=100)
函数就在这里

def content_file_name(instance, filename):
    upload_dir = os.path.join('uploads', 'resource')
    return os.path.join(upload_dir, filename)
forms.py

class Albumform(forms.Form):
    name_content = forms.CharField(max_length=100)
    file_upload = forms.FileField( 'please select' )
这是我的观点

from django.forms.formsets import formset_factory
def viewalbum(request):    
    AlbumFormSet = formset_factory(Albumform, extra=3, max_num=10,)
    if request.method == 'POST':
        formset = AlbumFormSet(request.POST, request.FILES)
        if formset.is_valid():
            albumvalue = Album()
            albumvalue.name_content = request.POST.get('name_content', None)
            albumvalue.file_upload = request.FILES['file_upload']
            albumvalue.save()


            return HttpResponseRedirect(reverse('views.viewalbum'))
    else:
        formset = AlbumFormSet()
    return render_to_response('audio/test.html',{'formset': formset}, context_instance=RequestContext(request))
html是这样的

<form action="" method="POST" enctype="multipart/form-data">
    {{ formset.management_form }}
    {% csrf_token %}
    <table>
        {% for form in formset.forms %}
            {{ form }}
        {% endfor %}
    </table>

{{formset.management_form}
{%csrf_令牌%}
{formset.forms%%中表单的%
{{form}}
{%endfor%}


问题是我一次只能上传一个文件。给我一个解决方案,在同一时间上传多个文件并保存到资源文件夹。谢谢

如果要上载多个文件,则需要多个文件字段。这是您的选项A。如果您选择使用它,请创建表单集并使用它提供多个文件上载


您的选项B是使用某种javascript小部件,使多个文件上传成为可能。

请您告诉我有关formset的更多信息。对于我上面的问题,我怎样才能添加表单集呢?。不过,您可能需要不同的数据库结构。在一个类中保留唱片集名称,在另一个类中保留文件,该类通过(多个)外键链接到唱片集。然后,您可以在多个相册中拥有相同的图像。其余部分都在我添加的django链接中描述。我尝试过,但返回此错误[u'ManagementForm数据丢失或已被篡改]。请查看我之前发送的页面的这一部分: