在django中创建json数组

aqu*_*man 17 python arrays django json

我想在django中制作一个json数组但是我收到错误 -

In order to allow non-dict objects to be serialized set the safe parameter to False
Run Code Online (Sandbox Code Playgroud)

和我的views.py -

def wall_copy(request):
    if True:
        posts = user_post.objects.order_by('id')[:20].reverse()
        return JsonResponse(posts) 
Run Code Online (Sandbox Code Playgroud)

基本上user_post是一个模型,帖子是前20个保存数据的对象.我想发送一个json数组,但我无法将帖子转换为json数组.我也尝试过序列化器,但它没有帮助.

我被困了,请帮帮我.

提前致谢.

ger*_*ett 40

这会解决你的问题吗?

from django.core import serializers
def wall_copy(request):
    posts = user_post.objects.all().order_by('id')[:20].reverse()
    posts_serialized = serializers.serialize('json', posts)
    return JsonResponse(posts_serialized, safe=False) 
Run Code Online (Sandbox Code Playgroud)


Pro*_*mik 5

您可以使用safe=False以下方法解决此问题:

    def wall_copy(request):
        posts = user_post.objects.all().order_by('id')[:20].reverse()

        return JsonResponse(posts, safe=False)
Run Code Online (Sandbox Code Playgroud)

请注意,这并不是真正不安全的 -您只需要确保自己要尝试返回的内容可以转换为JSON。

请参阅JsonResponse文档以获取参考。