Функция 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"}
Вернуться на верх