【发布时间】:2016-04-19 00:23:43
【问题描述】:
我正在开发一个房地产应用程序,其中有房产、城市和地点的模型,例如
class City(models.Model):
city = models.CharField(max_length=200)
def __str__(self):
return self.city
class Meta:
verbose_name_plural = "Cities"
class Location(models.Model):
address = models.CharField(max_length=200)
city = models.ForeignKey(City)
def __str__(self):
return self.address
class Property(models.Model):
STATUS_CHOICES = (
('draft', 'Draft'),
('published', 'Published'),
)
title = models.CharField(max_length=200, verbose_name=_('Title'))
slug = models.SlugField(max_length=250, unique_for_date='publish',verbose_name=_('Slug'))
city = models.ForeignKey(City)
address = models.ForeignKey(Location)
status = models.CharField(
max_length=10,
choices=STATUS_CHOICES,
default='draft'
)
这是它在管理员中的样子
问题在于这两个字段(城市和地点)都是独立的,即您可以在城市中选择伦敦并从不同城市选择位置。我对 django 模型(或数据库)相当陌生,但是您认为我应该将 Property 类中的 address 更改为 CharField 吗?这与city 有什么关系?
理想情况下,我希望在“城市”和“位置”字段中都具有“Google Places API”的自动完成功能,以便用户可以从 API 结果中进行选择,然后将结果保存在数据库中(当代理将添加属性)或使用选定的城市/位置进行数据库搜索。
我已经尝试过django-google-places,但不确定如何将其合并到我想要的模型字段中。在此先感谢
【问题讨论】:
-
在 Property 模型中,您不需要将 City 设置为外键,因为它已经通过 Location 外键引用到城市
标签: python django django-models