Python ';QuerySet';对象没有属性'_meta&x27;JSON格式的模型查询

Python ';QuerySet';对象没有属性'_meta&x27;JSON格式的模型查询,python,django,Python,Django,我试图将过滤后的模型查询转换成JSON对象,以便在模板中更好地处理它。 这是我的代码: @login_required(login_url='login') def myPostView(request): posts = BlogModel.objects.filter(user=request.user.id) serialized_posts = serializers.serialize('json', [ posts,]) print(serialized_

我试图将过滤后的模型查询转换成JSON对象,以便在模板中更好地处理它。 这是我的代码:

@login_required(login_url='login')
def myPostView(request):

    posts = BlogModel.objects.filter(user=request.user.id)

    serialized_posts = serializers.serialize('json', [ posts,])
    print(serialized_posts)

    context = {'posts': posts, 'serialized_posts': serialized_posts}

    return render(request, 'frontend/myposts.html', context)
我研究发现,我需要首先使用django.core序列化程序对数据进行序列化。但它给了我一个错误:


Request Method: GET
Request URL:    http://127.0.0.1:8000/myposts/
Django Version: 3.0.8
Exception Type: AttributeError
Exception Value:    
'QuerySet' object has no attribute '_meta'
Exception Location: D:\projects\app\env\lib\site-packages\django\core\serializers\base.py in serialize, line 94

对我做错了什么有什么看法吗?欢迎任何帮助

您不能将其包装在列表中,您应该将其实现为:

@login_required(login_url='login')
def myPostView(request):
    posts = BlogModel.objects.filter(user=request.user)
    serialized_posts = serializers.serialize('json', posts)
    print(serialized_posts)
    context = {'posts': posts, 'serialized_posts': serialized_posts}
    return render(request, 'frontend/myposts.html', context)
@login\u必需(login\u url='login')
def myPostView(请求):
posts=BlogModel.objects.filter(用户=request.user)
serialized_posts=序列化程序。序列化('json',posts)
打印(序列化的文章)
上下文={'posts':posts,'serialized_posts':serialized_posts}

返回render(请求'frontend/myposts.html',context)
您不能将其包装在列表中,您应该将其实现为:

@login_required(login_url='login')
def myPostView(request):
    posts = BlogModel.objects.filter(user=request.user)
    serialized_posts = serializers.serialize('json', posts)
    print(serialized_posts)
    context = {'posts': posts, 'serialized_posts': serialized_posts}
    return render(request, 'frontend/myposts.html', context)
@login\u必需(login\u url='login')
def myPostView(请求):
posts=BlogModel.objects.filter(用户=request.user)
serialized_posts=序列化程序。序列化('json',posts)
打印(序列化的文章)
上下文={'posts':posts,'serialized_posts':serialized_posts}

返回render(请求'frontend/myposts.html',context)
那简直是灰烬哈哈,该死!但是你知道为什么它控制台会在我的html中记录这样的日志:
(索引):77[{“model”:“api.blogmodel”,“pk”:1,“fields”:{“user”:1,“title”:“The Hobbit”,“Boken hobbiten handler om en Hobbit som en Hobbit som er pået eventyr med en trollmann.”,“created”:“2020-07-15T18:59:15.767Z”}
@adamkb96:那是因为它逃避了它,你应该在模板中用
{{serialized_posts | safe}}
呈现它。再次感谢你,伙计!真正地最后一件事,我如何访问字段键?因为它是这样呈现的:
[{“model”:“api.blogmodel”,“pk”:1,“fields”:{“user”:1,“title”:“The Hobbit”,“body”:“Boken hobbiten handler om en Hobbit som er pået eventyr med en trollmann.”,“created”:“2020-07-15T18:59:15.767Z”}
我看到了所有这些[{{在json对象和我混淆之前,
i
-th对象可以通过
blob[i].fields.user
访问。但是,这只能通过JavaScript函数完成,因为json blob是一个简单的字符串。否,
var posts=json.parse({{serialized|u posts | safe}}})
@adamkb96:那是因为它是转义的,所以你应该在模板中用
{serialized|posts | safe}}
来呈现它。再次感谢你,伙计!真的。最后一件事是我如何访问字段键?因为它呈现如下:
[{“model”:“api.blogmodel”,“pk”:1,“fields”:{“user”:1,“title”:“the Hobbit”,“body”:“Boken hobbiten handler om en hobbit som er pået eventyr med en trollmann.”,“created:“2020-07-15T18:59:15.767Z”}}我看到了所有这些[{{在json对象之前,我感到困惑……可以使用
blob[I]访问
I
-th对象.fields.user
例如。但是,这只能通过JavaScript函数完成,因为JSON blob是一个简单的字符串。否,
var posts=JSON.parse(“{serialized|u posts | safe}}”);
,然后迭代,等等。