Python GeoDjango:ValueError,无法将字符串转换为浮点
昨天我在简单模型上遇到了同样的问题,我已经设法解决了这个问题 今天我修改了以下模型:Python GeoDjango:ValueError,无法将字符串转换为浮点,python,django,django-models,mapbox,geodjango,Python,Django,Django Models,Mapbox,Geodjango,昨天我在简单模型上遇到了同样的问题,我已经设法解决了这个问题 今天我修改了以下模型: from django.contrib.gis.db import models from django.contrib.gis.geos import Point from mapbox_location_field.models import LocationField class IllegalDumpCategory(models.Model): category = models.Char
from django.contrib.gis.db import models
from django.contrib.gis.geos import Point
from mapbox_location_field.models import LocationField
class IllegalDumpCategory(models.Model):
category = models.CharField(
max_length=50,
)
slug = models.SlugField(
max_length=50,
unique=True,
)
description = models.TextField(
max_length=500,
)
class IllegalDumpGeo(models.Model):
user_name = models.CharField(
'Username',
max_length=50,
)
user_name_email = models.EmailField(
'Email',
max_length=254,
)
description = models.TextField(
max_length=500,
)
image_1 = models.ImageField(
upload_to='%Y/%m/%d',
blank=False,
null=False,
)
image_2 = models.ImageField(
upload_to='%Y/%m/%d',
blank=True,
null=True,
)
image_3 = models.ImageField(
upload_to='%Y/%m/%d',
blank=True,
null=True,
)
volume_extension = models.PositiveIntegerField(
blank=False,
null=False,
)
link = models.URLField(
blank=True,
null=True,
)
waste_type = models.ForeignKey(
IllegalDumpCategory,
on_delete=models.CASCADE,
)
geom = models.PointField(
blank=True,
null=True,
)
location = LocationField()
def __int__(self):
return self.pk
def save(self, *args, **kwargs):
lat = self.location[0]
lon = self.location[1]
self.geom = Point(x=lon, y=lat, srid=4326)
super(IllegalDumpGeo, self).save(*args, **kwargs)
@property
def coordinates(self):
return str(self.geom.x) + ', ' + str(self.geom.y)
我试图通过管理面板添加一些点,但我再次看到此错误:
为什么会这样
回溯看起来有点奇怪,但看看回溯,我想我发现了问题:
元组(map(float,tuple_string[1:-1].split(“,”)
方法尝试按”,“
(逗号后跟空格)拆分输入,但您正在传递以下lan:”6.01245266838146,-10.16992187499897'
在逗号后没有空格,因此拆分
无法按预期运行,导致尝试将完整字符串'6.01245266838146,-10.16992187499897'
转换为浮点()
您需要找到并修复创建lat_lon字符串的代码部分(在您的问题中找不到它,因此,我无法提供更多帮助。它可能是小部件的一部分
maybe?),以便在坐标之间包含逗号后的空格:
'lon_coord,<space>lat_coord'
看起来有点奇怪,但看看回溯,我想我发现了问题:
元组(map(float,tuple_string[1:-1].split(“,”)
方法尝试按”,“
(逗号后跟空格)拆分输入,但您正在传递以下lan:”6.01245266838146,-10.16992187499897'
在逗号后没有空格,因此拆分
无法按预期运行,导致尝试将完整字符串'6.01245266838146,-10.16992187499897'
转换为浮点()
您需要找到并修复创建lat_lon字符串的代码部分(在您的问题中找不到它,因此,我无法提供更多帮助。它可能是小部件的一部分
maybe?),以便在坐标之间包含逗号后的空格:
'lon_coord,<space>lat_coord'
该错误实际上是django mapbox位置字段中的一个错误 编辑此文件的第6行: 映射框\位置\字段/widgets.py 并将其更改为:
def parse_tuple_string(tuple_string):
返回元组(映射(浮点,元组\字符串[1:-1]。拆分(“,”))
注意:我删除了split方法中逗号后的空格
这就解决了问题。
我想我应该发送一个PR这个错误实际上是django mapbox位置字段中的一个bug 编辑此文件的第6行: 映射框\位置\字段/widgets.py 并将其更改为:
def parse_tuple_string(tuple_string):
返回元组(映射(浮点,元组\字符串[1:-1]。拆分(“,”))
注意:我删除了split方法中逗号后的空格
这就解决了问题。
我想我应该发送一份PR你能用pastebin等分享整个回溯吗?并将链接粘贴到这里。你能用pastebin等共享整个回溯吗?并将链接粘贴到此处。不幸的是,该部分是mapbox位置字段包的一部分。也许这是一只虫子?你觉得怎么样?我正在考虑自己开发一个小部件,这是我第一次这么做。我想要的是用表格在地图上画一个点。我从一个月前开始尝试使用OpenLayers广告,现在使用MapBox@MassimilianoMoraca,我没有使用该特定库的经验,但是如果您认为这是一个bug,您可以在他们的存储库中创建一个问题。另一个(更难的)解决方案是如您所说创建一个自定义小部件。不幸的是,这部分是mapbox位置字段包的一部分。也许这是一只虫子?你觉得怎么样?我正在考虑自己开发一个小部件,这是我第一次这么做。我想要的是用表格在地图上画一个点。我从一个月前开始尝试使用OpenLayers广告,现在使用MapBox@MassimilianoMoraca,我没有使用该特定库的经验,但是如果您认为这是一个bug,您可以在他们的存储库中创建一个问题。另一个(稍微困难一点)解决方案是如您所说创建自定义小部件。
'lon_coord,<space>lat_coord'
'6.01245266838146, -10.16992187499897'