0
ジオロケーションフィールドにlatitude
とlongitude
のモデルがあり、文字列として'27 .234234234,53.23423423434 'の形式で格納されています。なぜcached_propertyは常にデータを更新しますか?
このフィールドはdjango-geopositionで提供されています。彼のおかげで、住所を入力するのが非常に便利です。
また、実際の住所を保存する必要があります。私はこれを正しく行うかどうかわかりませんが、私はcached_property
class Address(models.Model):
geoposition = GeopositionField(null=True)
city = models.ForeignKey('cities_light.City', null=True)
country = models.ForeignKey('cities_light.Country', null=True)
entrance = models.CharField(null=True, max_length=4, blank=True)
floor = models.CharField(null=True, max_length=4, blank=True)
flat = models.CharField(null=True, max_length=4, blank=True)
@cached_property
def address(self):
g = geocoder.yandex([
str(self.geoposition).split(',')[0],
str(self.geoposition).split(',')[1]
],
method='reverse', lang='ru-RU')
return g.address
def save(self, *args, **kwargs):
if not self.address:
self.address()
super(Address, self).save(*args, **kwargs)
def __str__(self):
if self.address:
return '%s' % str(self.address)
return '%s' % str(self.pk)
でgeocoderを使用して、結果を格納することにしました。しかし、問題は、アドレスに関連付けられているモデルを編集するためのあらゆる試みであることである、Iプロパティが計算されていることを確認し、場合によっては外部サービスからの接続タイムアウトを取得します。
この現象の原因を理解できません。