如何存储Django对象';我的数据库中的方法结果?

如何存储Django对象';我的数据库中的方法结果?,django,django-models,django-views,Django,Django Models,Django Views,我是新手。事先道歉 我有: class Place(models.Model): address = models.CharField(max_length=100) [...] def coordinates(self): location = Location(self.address) return location “定位”方法有效,不是问题所在。我可以在模板中看到Place.coordinates,但我希望能够将它们存储在db中,从而在views.py中访

我是新手。事先道歉

我有:

class Place(models.Model):
  address = models.CharField(max_length=100)
  [...]
  def coordinates(self):
    location = Location(self.address)
    return location
“定位”方法有效,不是问题所在。我可以在模板中看到Place.coordinates,但我希望能够将它们存储在db中,从而在views.py中访问它们

我的问题是,如何在数据库中存储坐标,以便只进行一次计算(在最初填写表格时)


谢谢大家!!(我已经阅读了所有的文档,很可能我已经阅读了解决方案,只是不理解它,所以如果这是显而易见的,请原谅)

首先,为坐标定义一个模型:

class Coordinates(models.Model):
   [whatever coordinates consist of]
然后将
坐标
作为字段添加到
位置
模型中

class Place(models.Model):
   address = models.CharField(max_length=100)
   [...]
   coordinates = models.ForeignKey(Coordinates)
这样您就指定坐标存储在数据库中

现在,在向数据库添加新位置的视图中,首先创建坐标,然后将位置添加到数据库:

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, ...)

谢谢由于使用了新的通用视图,因此我在Place类中使用了save方法。