определение точки Джанго - PullRequest
0 голосов
/ 16 марта 2011

моих моделей:

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 Ответ

1 голос
/ 17 марта 2011

Хорошо, теперь ясно, что ваше сообщение об ошибке появляется при инициализации класса Point с None.

Это ваша первая критическая проблема.

Судя по сообщению об ошибке, я предполагаю, что poi_s инициализируется с None, None, поскольку Mod() является несохраненным экземпляром без значений, и это недопустимые параметры.1014 * Ваша вторая проблема, которая появится после исправления вышеуказанного, - запрос модели с недопустимым типом поиска (специфично для PointField, __distance), который принимает кортеж.Как это решить, я не знаю.

Вам нужно посмотреть, как GeoDjango переводит этот кортеж в поиск в БД.

...