7

私はこのDjangoモデルを持っています:

from django.contrib.gis.db import models

class Event(models.Model):
    address = models.TextField()
    point = models.PointField('coordinates', null=True, blank=True)

MySQL を使用してこのモデルを同期すると、インデックスの作成中に次のエラー メッセージが出力されます。

Failed to install index for events.Event model: (1252, 'All parts of a SPATIAL index must be NOT NULL')

それで、使用できない場合null=True(そのインデックスが必要な場合)、他にどのような可能性がありますか?ポイント (0,0) を「空」と定義することもできますが、データを使用する予定のあらゆる場所でその規則を覚えておく必要があります。そうしないと、アフリカの西の大西洋のどこかで多くのイベントが発生します...

他にどのような可能性がありますか?

4

3 に答える 3

2

ここには多くのオプションがあるとは思いません。(0, 0) などのプレースホルダーを使用するか、ポイントをオブジェクトにカプセル化し、ポイントが必要なすべての場所でオブジェクトを参照します。そうすれば、オブジェクトへの参照を null 可能にすることができますが、余分な結合によってパフォーマンスが低下し、事態が複雑になります。

于 2010-11-03T10:36:55.390 に答える
2

私はちょうど同じ問題を抱えていました。私にとっては、spatial_index を作成しないように指定する必要がありました。したがって、モデルは次のように変更されます。

from django.contrib.gis.db import models

class Event(models.Model):
    address = models.TextField()
    point = models.PointField('coordinates', null=True, blank=True, spatial_index=False)
于 2014-03-05T09:45:05.507 に答える