Ответ 1
Я быстро просмотрел спецификацию GeoJSON, и оказалось, что это только говорит о том, что поле свойств является объектом JSON в своем собственном праве, поэтому я думаю, что вы находитесь в письме текущую спецификацию, если вы хотите ее в этой части дампа JSON. Тем не менее, эта спецификация все еще находится в черновом варианте и поэтому может быть изменена (и может все же создавать дополнительные ограничения для этого поля). Предполагая, что вы можете жить с этим, мы можем продолжить...
Код, обрабатывающий это, находится в сериализаторе geojson. В настоящее время это создаст данные только для полей геометрии, типа и свойств в get_dump_object()
. Но вы заметите, что поле свойств отображает все, что находится в self._current
. Это поле фактически создается (по методам родительских классов), поскольку сериализатор выполняет итерацию по остальным полям объекта.
К моменту вызова get_dump_object()
self._current должен содержать все другие сериализуемые поля в объекте. Как вы можете видеть в классе base, поля будут сериализованы, только если они построены с помощью serialize=True
, и поле находится в список указанных полей, которые вы передали, в serialize()
(или вы не указали фильтр, чтобы вы все получили). Поэтому я предполагаю, что ваше поле code
было объявлено как не сериализуемое, или оно имеет неожиданное внутреннее имя, которое не соответствует вашему фильтру.
Чтобы попытаться исправить это, я бы посмотрел ваше объявление в поле code
в вашей модели для плохого параметра serialize, а затем просто попробуйте сериализовать без какого-либо списка полей. Надеюсь, один из них получит ваше пропавшее поле в JSON.