2016-10-21 7 views
0

私はAPIのためのジャンゴ - 休息 - フレームワークを使用していますが、私が作るときポスト要求は私にこのエラーを送信します。APIを使用してPointFieldを作成するにはどうすればよいですか?

{ 
    "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() 

私のシリアライザは、以下である:

class AddressCreateSerializer(serializers.ModelSerializer): 
    class Meta: 
     model = Address 
     fields = ('location') 

助けてください!

答えて

1

私はPointFieldからdjango-extra-fieldsを使用しています。 Superniceとフロントエンドの開発者にとっては直感的です(私はほとんどがモバイルバックエンドを書いています)。それによって、あなたのシリアライザで指定:

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, 
    } 
} 
+0

それは開発にではなく、生産に動作します。 – quienesmera

+0

生産は英雄です – quienesmera

+0

問題は解決しました。サーバー上でGEOSライブラリはインストールされていません。あなたの答えの男のためにまだありがとう – quienesmera

関連する問題