2017-02-23 84 views
0

Got кодAttributeError: 'ДИКТ' объект не имеет атрибута '_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 

Как я могу решить эту проблему?

+0

Возможный дубликат объекта [Django JSON :: 'dict' не имеет атрибута '\ _meta'] (http://stackoverflow.com/questions/9061068/django-json-dict-object-has-no-attribute- meta) – Anomitra

+0

Я стараюсь делать в этом посте, но ошибка dosen't hide –

ответ

1

Сериализовать ожидание запроса в качестве второго аргумента - и вы передаете список dicts; docstring:

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

В основном ваши данные практически сериализованы. Позвоните просто json.dumps();

Счастливые девочки.

+0

ty для вашего времени! –

+0

В качестве альтернативы вы можете использовать JsonResponse: https://docs.djangoproject.com/en/1.10/ref/request-response/#jsonresponse-objects. Это, вероятно, будет более чистым. – opalczynski