1
我在玩GeoDjango並有一些疑問。我會很感激任何評論和建議。使用GeoDjango模型作爲抽象類
這是我的問題。首先,我定義這個(抽象)類:
from django.contrib.gis.db import models
from django.contrib.gis.geos import *
class LocatableModel(models.Model):
country = models.CharField(max_length=48, blank=True)
country_code = models.CharField(max_length=2, blank=True)
locality = models.CharField(max_length=48, blank=True)
sub_locality = models.CharField(max_length=48, blank=True)
street = models.CharField(max_length=48, blank=True)
address = models.CharField(max_length=120, blank=True)
point = models.PointField(null=True)
objects = models.GeoManager()
class Meta:
abstract = True
其次,我定義這等「實體」的類,它 代表與我的網站的個人或組織:
from django.db import models
class Entity(models.Model):
name = models.CharField(max_length=64)
slug = models.SlugField(max_length=64, unique=True)
website = models.URLField(verify_exists=False, blank=True)
email = models.EmailField(blank=True)
...
最後,我創建了從以前的一類:
import LocatableModel
import Entity
class Organization(Entity, LocatableModel):
timetable = models.CharField(max_length=64)
...
在我的意見,我想找到組織附近的特定點:
from django.contrib.gis.geos import Point
from django.contrib.gis.measure import D
def index(request):
pnt = Point(12.4604, 43.9420)
dic = { 'orgs': Organization.objects.filter(point__distance__lte=(pnt, D(km=7))) }
return render_to_response('index.html', dic)
但我收到的錯誤:
「加入現場 '點' 不允許的。你有沒有提前拼錯「距離」爲 查找類型?」
我覺得我在做與模型‘對象’屬性一團糟,但我不知道。任何想法? 感謝。