Django不工作

2024-10-04 03:17:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的是一次上传多个文件 这段代码已经很旧了,不知道有没有人能帮上忙,或者有没有更好的方法

这是我的密码 型号.py你知道吗

class Document(models.Model):
    docfile = models.FileField(upload_to=only_filename)

    def __unicode__(self):
        return self.docfile.name

    @models.permalink
    def get_absolute_url(self):
        return ('upload-delete', )

你知道吗表单.py你知道吗

class MyUploadForm(forms.Form):
    docfile = MultiFileField(max_num=3, min_num=1, max_file_size=1024*1024*5)

    def save(self, commit=True):
        super(MyUploadForm, self).save(commit=commit)

        for each in self.cleaned_data['docfile']:
            att = Attachment(parent=self.instance, file=each)
            att.save()

        return self.instance

以及视图.py你知道吗

@login_required
def list(request):
    if request.method == 'POST':
        form = MyUploadForm(request.POST, request.FILES)
        if form.is_valid():
            newdoc = Document(docfile = request.FILES['docfile'])
            newdoc.user = request.user
            newdoc.save()

            return HttpResponseRedirect(reverse('multiupload.views.list'))
    else:
        form = MyUploadForm() # A empty, unbound form

    documents = Document.objects.all

    return render_to_response(
        'sample/index.html',
        {'documents': documents, 'form': form},
        context_instance=RequestContext(request)
    )

Tags: instancepyselfformreturnmodelsrequestsave
2条回答

我会建议你使用pl上传jQuery插件,我个人使用这个插件,这是相当容易和上传速度非常快。你知道吗

以下是一些示例:

Read a blog here

Code example you look here

也许这不是一个正确的方法。。。你知道吗

不重写保存在表单.py并将视图中的每个新对象放在valid()之后,如。。。你知道吗

def list(request):
    if request.method == 'POST':
        form = MyUploadForm(request.POST, request.FILES)
        if form.is_valid():
            newdoc = form.cleaned_data['docfile']
            for file_obj in request.FILES.getlist('docfile'):
                Document.objects.create(docfile=file_obj)
            return HttpResponseRedirect(reverse('multiupload.views.list'))

相关问题 更多 >