2

これは私が得ているエラーです:The view extraio.file_uploader.views.Upload_File didn't return an HttpResponse object.

ここで私が間違っていることを誰かが見ることができますか? HttpResponseRedirect を返しているため、なぜその例外が発生するのか理解できないようです。

from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response
from models import Files
from forms import Upload_File_Form

def Upload_File(request):
    if request.method == 'POST':
        form = Upload_File_Form(request.POST, request.FILES)
        if form.is_valid():
            for f in request.FILES.get_list('file'):
                f.save()
                orgfilename = Files(orgname=f.name)
                orgfilename.save()
            return HttpResponseRedirect('success.html')
        else:
            form = Upload_File_Form()
            return render_to_response('upload.html', {'form': form})
4

1 に答える 1

4

HttpResponseリクエストに応じてのみオブジェクトを返しますPOST。ビューを次のように書き換えます

def Upload_File(request):
    form = Upload_File_Form(request.POST or None,
                            request.FILES or None)
    if request.method == 'POST':
        if form.is_valid():
            for f in request.FILES.getlist('file'):
                f.save()
                orgfilename = Files(orgname=f.name)
                orgfilename.save()
            return HttpResponseRedirect('success.html')
   return render_to_response('upload.html', {'form': form},
                             context_instance=RequestContext(request))

編集context_instance:ところで、あなたが設定するのを忘れていました。代わりにrender_to_response 使用することもできますrender

render(request, 'upload.html', {'form': form})

request.FILES.get_list('file')する必要がありますrequest.FILES.getlist('file')

于 2012-09-18T09:45:18.803 に答える