Cod*_*ain 2 python migration django
当我尝试为以下模型进行迁移时:
class Location(models.Model):
name = models.CharField(max_length=200)
latitude = models.FloatField
longitude = models.FloatField
altitude = models.IntegerField
def _str_(self):
return self.name
def getLatitude(self):
return self.latitude
def getLongitude(self):
return self.longitude
class Distance(models.Model):
placeA = models.ForeignKey(Location, on_delete=models.CASCADE)
placeB = models.ForeignKey(Location, on_delete=models.CASCADE)
placeAlatitude = placeA.getLatitude()
placeBlatitude = placeB.getLatitude()
placeAlongitude = Location.objects.select_related().get(placeA.longitude)
placeBlongitude = Location.objects.select_related().get(placeB.longitude)
distance = models.FloatField(default = 0.0)
Run Code Online (Sandbox Code Playgroud)
我收到错误:
'ForeignKey' 对象没有属性 'getLatitude'
如果我尝试直接访问纬度,我会收到类似的错误 ( placeA.latitude)
我究竟做错了什么?我是使用 Django 框架的新手。
首先,有可能在一个错误Location的模型:你在这里不会兴建的FloatFieldS和IntegerField:你只传递给类的引用,你不“来电”了。因此,为了定义这些列,您应该添加括号:
class Location(models.Model):
name = models.CharField(max_length=200)
latitude = models.FloatField()
longitude = models.FloatField()
altitude = models.IntegerField()
# ...Run Code Online (Sandbox Code Playgroud)
接下来,您不能定义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.longitudeRun Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4642 次 |
| 最近记录: |