Ajaxリクエストへの応答としてDjangoモデルを配置したいと思います。現在、views.pyにこれがあります:
def get_account(request, account_id):
try:
account = Account.objects.get(pk=account_id)
success = True
error_message = None
except Account.DoesNotExist:
success = False
error_message = 'This account does not exist'
results = {
'success': success,
'error_message': error_message,
}
return HttpResponse(
json.dumps(results),
mimetype='application/json')
account
モデルをresults
dictに追加したいと思います。account.__dict__
他のオブジェクトへの参照が含まれているため、実行されません。
de django serialize関数を見つけました。これは、希望どおりにシリアル化しますが、Json文字列を直接作成するだけなので、Jsonオブジェクト内にJson文字列が含まれることになります(モデルが大きい場合は、bandwithに適していません。 Json文字列はすべてエスケープされます)。したがって、Javascriptでもう一度json_decodeする必要があります。
また、djangoのシリアル化関数はオブジェクトのリストのみを受け入れるため、1つのオブジェクトのみでリストを作成する必要があり、シリアル化を解除すると、リストの最初の値が取得されます(これはそれほど大きな問題ではありませんが、追加されます)山まで)。
モデルをPythondictだけにシリアル化できれば素晴らしいと思います。その後、好きなようにそれを使って何でもすることができます。
誰もが同じ問題を抱えたことはありますか?どのようにそれを解決しましたか?