#django #django-rest-framework
#django #django-rest-framework
Вопрос:
Я использую django-rest-framework для API, но когда я делаю post-запрос, мне отправляется эта ошибка:
{
"location": [
"Invalid format: string or unicode input unrecognized as GeoJSON, WKT EWKT or HEXEWKB."
]
}
Основной запрос:
{
"location":{
"type":"Point",
"coordinates":[37.0625,-95.677068]
}
}
Моя модель выглядит следующим образом:
class Address(models.Model):
location = geo.PointField(srid=4326, blank=True)
objects = geo.GeoManager()
Мой сериализатор — это follow:
class AddressCreateSerializer(serializers.ModelSerializer):
class Meta:
model = Address
fields = ('location')
Помогите мне, пожалуйста!
Ответ №1:
Для этого я использую PointField
from django-extra-fields
. Превосходный и интуитивно понятный интерфейс для разработчиков (в основном я пишу мобильные бэкенды). При этом в вашем сериализаторе укажите:
from drf_extra_fields.geo_fields import PointField
class AddressCreateSerializer(serializers.ModelSerializer):
location = PointField()
class Meta:
model = Address
fields = ('location')
Запрос (угадайте, какое из ваших значений равно широте, а какое — длине):
{
"location":{
"latitude": 37.0625
"longitude": -95.677068,
}
}
Комментарии:
1. Производство heroku
2. Проблема решена. На сервере не установлена библиотека GEOS. Все еще спасибо за твой ответ, чувак