1

ペットプロジェクトでgeodjangoを試していますが、例外を除いてすべてが良好に見えます...

私のモデルには、次のようなフィールドがあります。

coordinates= models.PointField(srid=4326,default='POINT(0.0 0.0)')

管理者はから拡張しadmin.OSMGeoAdminますが、管理者で新しいモデルインスタンスを開くと、マップで「0.00,0.00」ポイントが選択されていないので、ドキュメントを保存しようとすると、「ジオメトリ値なし」が表示されます。提供された'。管理者がポイントをマップに配置できない場合のように。

また、シェルを使用しようとすると、問題なくインスタンスを保存し、デフォルト値のPOINT(0.0 0.0)でフィールドを取得できます。

管理者に何かが足りませんか?

ヒントをありがとう!

4

2 に答える 2

3

同じ問題があります。それは奇妙だ。POSTされているものは意味がありません。送信を押す時点で、textareaには正しいジオメトリ値があります(この値を出力するフォームにonsubmitを配置したため)。しかし、提出されるのはその価値ではありません。だから私はJSをオフにしました...すごい。正しい値が送信され、私は少し幸せですが、これは解決策ではありません。しかし、javascriptがこれを行っているのか私にはわかりません。私はこれをDjango1.3と1.4で試しました。運が良かったですか?

アップデート。もう1つの「解決策」...openlayers.htmlをオーバーライドし、textareaを標準のテキスト入力に変えます。おお。再び動作します。

解決しました!

だから私は少し掘り下げました...しかし私の管理者はtinymceを使用しています...Tinymceはtextareasで動作しますええ....それはウィジェットのtextareaを台無しにしましたが、これまでにないほど静かです。

editor_deselector: "vWKTField"

于 2012-10-13T15:57:49.583 に答える
2

さて、openlayers.htmlをいじってみました(ありがとうnoisyboiler!)OSMGeoAdminに属性があることがわかりました。display_wktこれを設定するとTrue、テンプレートをハッキングせずにtextAreaが表示されます。

既存のポイントがあるエントリの場合、次の形式の値が含まれます。

SRID=3857;POINT(890338.8453418 -1109499.0330941)

したがって、ポイントフィールドを次のように変更します。

coordinates= models.PointField(srid=4326,default='SRID=3857;POINT(0.0 0.0)')

Spherical Mercatorから私が理解しているのは、4326は2次元マップ用ですが、googleMapsは球形の投影を含む3857を使用しているようです。

今は動作します!

于 2012-10-16T01:33:56.650 に答える