繁体   English   中英

AttributeError:'dict'对象没有属性'_meta'

[英]AttributeError: 'dict' object has no attribute '_meta'

得到的代码

shops = Shop.objects.filter(id__in=list(set(shop_ids))).all()
shop_list = []
for s in shops.only():
    shop_list.append({
        'id': s.id,
        'name': s.name,
        'preview': s.preview,
    })

response_data['shop'] = serializers.serialize('json', shop_list)

return response_data

.....

AttributeError: dict object has no attribute _meta

如何解决此问题?

序列化期望查询集作为第二个参数-您正在传递字典列表; docstring:

def serialize(format, queryset, **options):
    """
    Serialize a queryset (or any iterator that returns database objects) using
    a certain serializer.
    """
    ...

基本上,您的数据几乎已序列化。 调用简单的json.dumps() ;

快乐的外衣。

Maybe you want this:
def someUrlFunc(request):
  # ....do some business...
  objs = SomeModel.objects.all().values()
  # you don't need to do this anymore
  # response = serializers.serialize('json', objs, ensure_ascii=False) 
  # just return the values as string
  response = str(list(result)) 
return HttpResponse(response)

更新:另外,您可以尝试以下操作:

import json
def someUrlFunc(request):
  objs = SomeModel.objects.all().values()
  response = json.dumps(list(result)) 
return HttpResponse(response)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM