0

1つの機能で問題が発生するWebアプリケーションを開発しています。ここでそれをチェックすることができますhttp://qlimp.com ユーザー名/パスワードにもこれを使用できます:dummy / dummy

ログイン後、リンクをクリックしてくださいカバー設定に移動画像をアップロードしたり、テキストを入力したりできるパレットが表示されます。

画像をアップロードすると、jQueryでajaxリクエストを作成しました。このリクエストは、画像をサーバーにアップロードし、その画像の全ページの背景プレビューを表示します。

JQuery

$('#id_tmpbg').live('change', function()
    {
    $("#ajax-loader").show();
    $("#uploadform").ajaxForm({success: showResponse}).submit();
    });

function showResponse(responseText, statusText, xhr, $form)  { 
    $.backstretch(responseText)
    $("#ajax-loader").hide();
}

したがって、ここでの問題は、画像をアップロードすると、次のように表示されることです。

ValueError at /cover/ 
The view cover.views.backgroundview didn't return an HttpResponse object. 
Request Method: POST Request URL: http://qlimp.com/cover/ 

私は実際にビューでHttpResponseオブジェクトを返しています。

Views.py:

@login_required
def backgroundview(request):
    if request.is_ajax():
        form = BackgroundModelForm(request.POST, request.FILES)
        if form.is_valid():
            try:
                g = BackgroundModel.objects.get(user=request.user)
            except BackgroundModel.DoesNotExist:
                data = form.save(commit=False)
                data.user = request.user
                data.save()
            else:
                if g.tmpbg != '' and g.tmpbg != g.background:
                    image_path = os.path.join(settings.MEDIA_ROOT, str(g.tmpbg))
                    try:
                        os.unlink(image_path)
                    except:
                        pass
                data = BackgroundModelForm(request.POST, request.FILES, instance=g).save()
            return HttpResponse(data.tmpbg.url)
    else:
        form = BackgroundModelForm()
        return render_to_response("cover.html", {'form': form}, context_instance=RequestContext(request))

Models.py:

class BackgroundModel(models.Model):
    user = models.OneToOneField(User)
    background = models.ImageField(upload_to='backgrounds', null=True, blank=True)
    tmpbg = models.ImageField(upload_to='backgrounds', null=True, blank=True)

class BackgroundModelForm(ModelForm):
    class Meta:
        model = BackgroundModel
        exclude = ('user','background')

しかし、これらは私のコンピューターでは機能していますが(画像を保存し、背景のプレビューを表示しています)、本番サーバーでは機能していません。なんでそうなの?同じコードをサーバーにアップロードしました。

誰か助けてもらえますか?ありがとう!

4

1 に答える 1

0

フォームが有効な場合、応答は返されません。

于 2012-05-23T13:15:17.827 に答える