django点定义

时间:2011-03-16 15:35:07

标签: python openlayers geodjango

我的模特:

class Mod(models.model)
    name = models.CharField(max_length = 255)
    co_x = models.DecimalField(max_digits = 11, decimal_places = 8)
    co_y = models.DecimalField(max_digits = 11, decimal_places = 8)

我的观点:

def closedPoint(request):
    location_name = str(request.POST.get("lo", default=""))
    nokta_x = int(float(request.POST.get("x"))
    nokta_y = int(float(request.POST.get("y"))
    poi = Point(nokta_x, nokta_y, srid = 900913)

    sk = Mod()
    poi_s = Point(sk.co_x, co_y, srid = 900913)

    resut_poi = Mod.objects.filter(poi_s__distance_lte = (poi, D(km = 7))).filter(name__in = location_name)

这里我想扣除7公里处的最近点,但它给出了“点初始化给出的参数无效

1 个答案:

答案 0 :(得分:1)

好的,现在很清楚,您的错误消息来自于使用Point初始化None课程。

这是您第一个严重问题。

根据错误消息判断,我的猜测poi_s初始化为None, None,因为Mod()是未保存的实例,没有值,这些是无效参数。

sk = Mod() # unsaved Mod instance with no defaults
poi_s = Point(sk.co_x, co_y, srid = 900913)
# sk.co_x is None

修复上述内容后出现的第二个问题是查询具有无效查找类型(特定于PointField__distance)且接受元组的模型。如何解决,我不知道。

您必须查看GeoDjango如何将该元组转换为数据库查找。