2 回答
TA贡献1836条经验 获得超5个赞
首先,有可能在一个错误Location的模型:你在这里不会兴建的FloatFieldS和IntegerField:你只传递给类的引用,你不“来电”了。因此,为了定义这些列,您应该添加括号:
class Location(models.Model):
name = models.CharField(max_length=200)
latitude = models.FloatField()
longitude = models.FloatField()
altitude = models.IntegerField()
# ...
接下来,您不能定义placeAlatitude等方面与placeA.GetLatitude()在一流水平placeA是一个ForeignKey对象,不是一个Location,对象,但是,您可以定义@property这里的意志,对于一个Distance对象,获取相关对象的正确的属性:
class Distance(models.Model):
placeA = models.ForeignKey(Location, on_delete=models.CASCADE)
placeB = models.ForeignKey(Location, on_delete=models.CASCADE)
distance = models.FloatField(default = 0.0)
@property
def placeAlatitude(self):
return self.placeA.latitude
@property
def placeBlatitude(self):
return self.placeB.latitude
@property
def placeAlongitude(self):
return self.placeA.longitude
@property
def placeBlongitude(self):
return self.placeB.longitude
TA贡献1788条经验 获得超4个赞
在您的模型中,您正在定义结构。你不能用
placeAlatitude = placeA.getLatitude()
placeBlatitude = placeB.getLatitude()
placeAlatitude 和 placeBlatitude 必须定义模型的类型。你不能简单地返回值。
通过分析您的模型,这两个字段不是必需的,它是冗余值(placeAlongitude 和 placeBlongitude 的情况相同)。您定义了与位置的外键关系。因此,您可以使用该关系访问经度和纬度。
添加回答
举报