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')
しかし、これらは私のコンピューターでは機能していますが(画像を保存し、背景のプレビューを表示しています)、本番サーバーでは機能していません。なんでそうなの?同じコードをサーバーにアップロードしました。
誰か助けてもらえますか?ありがとう!