0

画像をディレクトリにアップロードする必要があるカスタムフォームがあります。以下はコードです

ビュー関数

def user_profile(request):
    if request.method == 'POST':
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid()  and form.is_multipart():
            new_user = save_file(request.FILES['image'])
            return HttpResponse(new_user)
    else:
        form = ImageForm()
        return render_to_response('user_profile.html', { 'form': form })



def save_file(file, path='home/ghrix/ghrixbidding/static/images/'):
    ''' Little helper to save a file
    '''
    filename = file._get_name()
    fd = open('%s/%s' % (MEDIA_ROOT, str(path) + str(filename)), 'wb')
    for chunk in file.chunks():
        fd.write(chunk)
    fd.close()

以下はフォームです。

<form method="POST" class="form-horizontal" id="updateform" name="updateform" enctype="multipart/form-data" action="/user_profile/">{% csrf_token %}
    <input type="file" id="fileinput" name="fileinput" />
    <button class="btn btn-gebo" type="submit">Save changes</button>
</form>

しかし、このエラーが発生しています:

The view userprofile.views.user_profile didn't return an HttpResponse object.
4

2 に答える 2

1

エラーは、ビューが何も返していないことを示していますHttpResponse。それが可能であるという1つのケースがあります -

def user_profile(request):
    if request.method == 'POST':
        form = ImageForm(request.POST, request.FILES)
        if form.is_valid()  and form.is_multipart():
            new_user = save_file(request.FILES['image'])
            return HttpResponse(new_user)
# ------^
# There is not else check. It's possible that the if condition is False.
# In that case your view is returning nothing.
    else:
        form = ImageForm()
        return render_to_response('user_profile.html', { 'form': form })
于 2013-08-14T06:54:55.733 に答える