私のアプリケーションの一部は、いくつかの材料を取り込んで、関連するレシピを吐き出します。AJAXのみを使用するように変換しようとしています。JSON で返されるデータを解析し、フロント エンドで使用するためにデータにアクセスする際に問題が発生しています。
Django views.py の私のコードは次のようになります。
recipes = Recipe.objects.all() #shortened to all objects for example purposes
import simplejson
data = ''
for r in recipes:
the_date = r.date_created.strftime("%b %d")
recipe_dict = { 'id' : r.id,
'name' : r.name,
'user' : r.user.username,
'date_created' : the_date,
'votes' : r.votes,
'slug' : r.slug }
data += simplejson.dumps(recipe_dict)+'\n'
return HttpResponse(data)
私のJavaScriptは次のようになります:
//request an updated list of recipes with AJAX
$.get('/recipes/discover', { 'ingredients': ingredients },
//display these new relevant recipes
function(recipes){
$.each(recipes, function() {
$("#results").append("<li id='recipe-"+ this.id +"'>"+ this.name +"</li>");
})
})
.complete(function(){ $('#loading_spinner').fadeOut(1000); })
});
この方法で取得した出力は、JSON 応答の各文字のように見えるものの新しい li を提供することになります....each()
各文字を通過します。
私もjQuery.parseJSON(data);
それぞれを実行する前に使用してみましたが、これは JSON レシピが 1 つしか返されない場合にのみ機能するようです。JSON で何かが間違ってフォーマットされていると思いますか、それとも正しく解析していませんか?
前もって感謝します!