Django имеет встроенную функциональность сериализации, которая позволяет вам сериализовать любой набор результатов запроса в JSON:
json_serializer = serializers.get_serializer("json")()
json_serializer.serialize(queryset, ensure_ascii=False)
Это приводит к выводу, например:
[
{
"pk": 1,
"model": "app_name.model_name",
"fields": {
"field_name": "value",
(...)
}
}
]
Если вы хотитеПередайте этот объект JSON в приложение, управляемое ExtJS, с которым вы столкнулись с проблемой, потому что ExtJS ожидает, что его JSON будет отформатирован по-разному:
{
"total": 100,
"success": true,
"objects": [
{
"id": 1,
"field_name": "value",
(...)
}
]
}
Существует 2 основных различия: дополнительные метаданные (успех, итог) и идентификаторы объектов, которые предоставляются вместе с другими полями в Ext, но не в Django.
Существует много возможных способов привести один или другой формат в соответствие со вторым, но что вы считаетебыть лучшим способом сделать эту работу?Это специальный сериализатор на стороне Django, или, может быть, специальный читатель на стороне ExtJS ...
Какой, по вашему мнению, лучший способ решить эту проблему?