Функция Django serialize возвращает ошибку JSONEncoder.__init__() получил неожиданный аргумент ключевого слова 'fields'
Я пытаюсь сериализовать мою salesnetwork.agency
модель в файл geojson, и согласно документам Django я использую следующий код:
(я использую Django 4.1.2)
markers = Agency.objects.all()
geojson_file = serialize("geojson",
markers,
geometry_field="location",
fields=("province",)
)
Но этот код приводит к следующей ошибке:
Речь идет о поле field
в функции serialize
. Так где же моя проблема? Я написал, как указано в документации.
Я также добавил следующее в свои настройки:
SERIALIZATION_MODULES = {"geojson": "djgeojson.serializers"}
Из вашего трассировщика ошибок можно заметить, что некоторый код в djgeojson\serializers.py
вызывается вместо django/contrib/gis/...
также, как вы подтвердили, вы установили следующее в вашей настройке:
SERIALIZATION_MODULES = {"geojson": "djgeojson.serializers"}
Это означает, что когда вы хотите, чтобы Django использовал форматтер с именем "geojson", он будет использовать его из djgeojson.serializers
, вы можете либо удалить этот параметр, если вы не используете сериализатор из этого пакета, либо, если вы хотите продолжать использовать его, вы можете просто обновить имя, которое вы используете для него:
SERIALIZATION_MODULES = {"djgeojson": "djgeojson.serializers"}