如何根据值将 ForeignKey 字段限制为另一个模型 FK
How to limit ForeignKey field to another model FK depending on value
我在 Django 中有以下模型,并使用智能选择:
class Country(models.Model):
name = models.CharField(max_length=100)
class Province(models.Model):
name = models.CharField(max_length=100)
country = models.ForeignKey(Country)
class City(models.Model):
name = models.CharField(max_length=100)
country = models.ForeignKey(Country)
province = models.ForeignKey(Province)
在固定装置中,我添加了多个国家及其省份和城市。
我在这个模型中使用 smart-selects 链接
class WorkArea(models.Model):
work_area = models.CharField(max_length=100)
country = models.ForeignKey(Country)
province = ChainedForeignKey(Province, chained_field="country",chained_model_field="country")
city = ChainedForeignKey(City, chained_field=province", chained_model_field="province")
现在我有了这个模型:
class Project(models.Model):
project_name = models.CharField(max_length=100)
province = models.ForeignKey(Province)
问题:在模型 Project
中,我如何只显示省份形式 Province
模型,country
设置为 X(如果我有国家 "USA"并且 "Canada" 我希望字段 province
仅显示 "USA" 中的省份列表,并预选国家/地区)。
这是使用limit_choices_to
的解决方案
class Project(models.Model):
project_name = models.CharField(max_length=100)
province = models.ForeignKey(Province, limit_choices_to={"country": 1})
我在 Django 中有以下模型,并使用智能选择:
class Country(models.Model):
name = models.CharField(max_length=100)
class Province(models.Model):
name = models.CharField(max_length=100)
country = models.ForeignKey(Country)
class City(models.Model):
name = models.CharField(max_length=100)
country = models.ForeignKey(Country)
province = models.ForeignKey(Province)
在固定装置中,我添加了多个国家及其省份和城市。
我在这个模型中使用 smart-selects 链接
class WorkArea(models.Model):
work_area = models.CharField(max_length=100)
country = models.ForeignKey(Country)
province = ChainedForeignKey(Province, chained_field="country",chained_model_field="country")
city = ChainedForeignKey(City, chained_field=province", chained_model_field="province")
现在我有了这个模型:
class Project(models.Model):
project_name = models.CharField(max_length=100)
province = models.ForeignKey(Province)
问题:在模型 Project
中,我如何只显示省份形式 Province
模型,country
设置为 X(如果我有国家 "USA"并且 "Canada" 我希望字段 province
仅显示 "USA" 中的省份列表,并预选国家/地区)。
这是使用limit_choices_to
class Project(models.Model):
project_name = models.CharField(max_length=100)
province = models.ForeignKey(Province, limit_choices_to={"country": 1})