私は私のAjaxレスポンスにクエリーセットを返したいのですが、これはクエリーセットをシリアライズしようとするとエラーになります。JSONはDjangoでクエリセットをシリアル化できますか?
TypeError: 'Font: FontName' is not JSON serializable
私はそうのようなJSONレスポンスを使用しています:私も、同じエラーを試してみました
...
return JsonResponse({
'foo': Font.objects.filter(id=1).first(),
})
:
response = json.dumps({
'foo' : tmp_fonts,
})
return HttpResponse(response, content_type='application/json')
3回目:
AttributeError: 'str' object has no attribute '_meta'
# tmp_fonts = [<Font:CaviarDream>, <Font:Arial>, <Font:Calibri>, etc...]
return JsonResponse({
'foo': serializers.serialize('json', tmp_fonts),
})
私は、応答でそれを取り戻すと私のテンプレートにクエリ内のすべてのフィールドを表示できるようにしたいと思います。これも可能ですか?
モデル:
class UserInfo(models.Model):
organisation = models.CharField(max_length=255)
font = models.ManyToManyField(Font)
class Font(models.Model):
name = models.CharField(max_length=255)
ルック[ここ](https://docs.djangoproject.com/en/1.11/topics/serialization/)。十分でない場合は、必要なものを手動で作成することができます。また、 'JsonResponse'を使う必要があります。もう1つは投げ捨ててください。 – RompePC
シリアライザをポストして両方をモデル化できますか?また、3回目に 'tmp_backgrounds'を試してください –
シリアライザの中で、' tmp_fonts'を 'Font.objects.all()'(またはそれが何であれ)に置き換えてください。これは、リストではなくQuerySetで動作するように提案されています。 – RompePC