Python 3.x 使用从浮点到字符串的转换覆盖保存方法
我正在使用,需要将数据从Python 3.x 使用从浮点到字符串的转换覆盖保存方法,python-3.x,django-models,django-2.2,Python 3.x,Django Models,Django 2.2,我正在使用,需要将数据从LocationField()自动保存到另一个名为坐标的字段中 这是我的模型: class AddPoint(models.Model): point = LocationField() coordinates = models.CharField( max_length=50, blank=True, null=True, ) def save(self, *args, **kwargs)
LocationField()
自动保存到另一个名为坐标的字段中
这是我的模型:
class AddPoint(models.Model):
point = LocationField()
coordinates = models.CharField(
max_length=50,
blank=True,
null=True,
)
def save(self, *args, **kwargs):
lat = self.point[0]
lon = self.point[1]
lon_lat = str(lon) + ', ' + str(lat)
self.coordinates = lon_lat
super(AddPoint, self).save(*args, **kwargs)
每次尝试在管理面板中添加点时,我都会看到以下错误:
无法将字符串转换为浮点:
‘1.110756623730225,17.0771352648959’
我不明白为什么会这样。在save方法中,float被转换为string而不是viceversa,而且坐标是一个char字段。由于@Patrick Artner的指示,我已经解决了这个问题
解决办法是:
def save(self, *args, **kwargs):
lat = self.point[0]
lon = self.point[1]
lon_lat = str(str(lon) + ', ' + str(lat))
self.coordinates = lon_lat
super(AddPoint, self).save(*args, **kwargs)
字符串'1.110756623730225,17.0771352648959'
不是一个浮点数,而是以字符串形式的两个逗号分隔的浮点数-您的保存似乎只需要一个浮点数,而不是两个komma分隔的浮点数。。。。您可能只需要为它提供lat或lon或浮动字符串列表-不确定,您的代码不完整