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 的情況相同)。您定義了與位置的外鍵關系。因此,您可以使用該關系訪問經度和緯度。
添加回答
舉報