ここでやろうとしていることの正しい解決策を見つけるのに苦労しています。助けていただければ幸いです。
現時点では、データベースから「スペシャル」を取得してブラウザに表示する作業システムがあります。ユーザーはブラウザでその「スペシャル」を編集し、データベースに送信できます。その後、その変更がユーザーに表示されます。
問題は、データベースに既存の「特別」がない場合、「特別」が更新されないことです。私のviews.pyには次のものがあります:
def changeSpecialOffer(theRequest):
myProductUuid = theRequest.POST['myProductUuid']
myNewSpecialOffer = theRequest.POST['myNewSpecialOffer']
myProduct = get_object_or_404(Product, uuid=myProductUuid)
myActiveSpecial = get_object_or_404(SpecialOffer.objects.filter(product=myProduct).filter(
active=True))
try:
myActiveSpecial.special = myNewSpecialOffer
myActiveSpecial.save()
except:
return HttpResponse(myActiveSpecial, mimetype='text/plain')
myActiveSpecial = SpecialOffer.objects.filter(product=myProduct).filter(
active=True)
return HttpResponse(myActiveSpecial, mimetype='text/plain')
「Special」の更新が機能しない理由はget_object_or_404
、データベースに既存の「Special」がないため、 が 404 エラーを正しく返すためであることを知っています。
データベースに既存の「スペシャル」がある場合、関数を壊さずにこの問題を回避する最善の方法を考え出そうとしばらく試みてきました。
これまで、 を と に置き換えてみましたget_object_or_404
がtry
、 .except
などの保存機能で問題が発生しました'unicode' has no attribute 'save()'
。