【发布时间】:2019-02-28 11:14:59
【问题描述】:
我在 "external_app" 应用中有这样的模型 "Cities":
class Cities(models.Model):
CityName = models.CharField(max_length=50, blank=False, db_index=True)
slug = models.SlugField(max_length=50, db_index=True, unique=True)
我有第二个应用,“Address_program”,模型很少:
class CityRegions(models.Model):
city = models.ForeignKey('external_app.Cities', default=0, verbose_name=' City', related_name='City_for_region')
city_region = models.CharField(max_length=200, blank=False, default='', verbose_name='City region', unique=True)
city_region_slug = models.SlugField(verbose_name='City region slug')
区域中子区域的第二个模型。现在我想在 CityRegions 模型中发布使用过的城市。我尝试为城市字段添加 FK
class RegionSquares(models.Model):
city = models.ForeignKey(CityRegions, default=0, verbose_name='City', related_name='City_for_regionsquare', to_field='city')
region = models.ForeignKey(CityRegions, default=0, verbose_name='City region',related_name='Region')
region_square = models.CharField(max_length=200, blank=False, default='', verbose_name='City sub-region')
region_square_slug = models.SlugField(verbose_name='City sub-region slug')
当我尝试进行迁移时,我收到错误消息 "(fields.E311) 'CityRegions.city' must set unique=True because it is referenced by a foreign key"。
当我在 CityRegions.City 字段中设置 unique=True 并尝试迁移时,我收到错误消息:“django.db.utils.IntegrityError: UNIQUE constraint failed...”
问题是如何在RegionSquares模型中发布用于CityRegions模型城市的列表?
在普通应用中应该有几个模型: - 当前城市的城市区域编辑列表(应显示区域和城市) - 每个城市区域的可编辑子区域列表(应显示城市、区域和子区域) - 可编辑的街道列表(应显示城市、区域和次区域)
方案:
**cities** (model. Used in another apps of the project)
|-->**citie's regions** (parent for sub-regions) (city and region should me show in admin)
|--> **region's sub-regions** (parent for streets) (city,region and sub-region should me show in admin)
|--> **list of streets** (city,region, sub-region and street should me show in admin)
样本数据:
**Cities:** Moscow, Novosibirsk, Kemerovo
**Regions (city is parent):** Moscow - SVAO, Moscow - TSAO, Novosibirsk - Centralnij, Kemerovo - Jugniy
**Sub regions (City and region are parents):** Moscow - SVAO - sub-region A; Moscow - SVAO - subregion B; Moscow - SVAO sub-region C. Novosibirsk - Centralnij - sub-region A. Novosibirsk - Centralnij - sub-region B
**Streets (City, region and sub-region are parents):** Moscow - SVAO - sub-region A - street A; Moscow - SVAO - sub-region A - street B; Moscow - SVAO - sub-region A - street C; Novosibirsk - Centralnij - sub-region B -s treet A; Novosibirsk - Centralnij - sub-region B street B... and so on
想要的结果:
Moscow
Moscow - SVAO
Moscow - SVAO - sub-region A
Moscow - SVAO - sub-region A - street A
Moscow - SVAO - sub-region A - street B
Moscow - SVAO - sub-region A - street C
Moscow - SVAO - sub-region B
Moscow - SVAO - sub-region B - street A
Moscow - SVAO - sub-region B - street B
Moscow - SVAO - sub-region B - street C
Moscow - SVAO - sub-region C
Moscow - SVAO - sub-region C - street A
Moscow - SVAO - sub-region C - street B
Moscow - SVAO - sub-region C - street C
Novosibirsk
Novosibirsk - Centralnij
Novosibirsk - Centralnij - sub-region A - street A
Novosibirsk - Centralnij - sub-region A - street B
Novosibirsk - Centralnij - sub-region A - street C
and so on...
我使用 Django 1.11 和 python 2.7.10
【问题讨论】:
标签: python django django-models foreign-keys