纽布在这里。提前道歉。
我有:
class Place(models.Model):
address = models.CharField(max_length=100)
[...]
def coordinates(self):
location = Location(self.address)
return location
“位置”方法有效并且不是问题。我可以在模板中看到Place.coordinates,但我希望能够将它们存储在数据库中,因此在views.py中访问它们。
我的问题是,如何在我的数据库中存储坐标,以便只进行一次计算(最初填写表格时)?
谢谢! (而且我已经阅读了所有的文档,很可能我已经阅读了解决方案并且只是不理解它,所以如果这很明显,那么你将不得不原谅我)
答案 0 :(得分:4)
首先,定义坐标的模型:
class Coordinates(models.Model):
[whatever coordinates consist of]
然后将coordinates
作为字段添加到Place
模型。
class Place(models.Model):
address = models.CharField(max_length=100)
[...]
coordinates = models.ForeignKey(Coordinates)
通过这种方式,您已指定坐标存储在db。
中现在,在向数据库添加新Place的视图中,首先创建Coordinates,然后将Place添加到数据库:
def add_place(form):
address = form.cleaned_data['address']
coordinates = Coordinates.objects.get_or_create(Location(address))
[...]
place =
Place.objects.get_or_create(address=address, coordinates=coordinates, ...)