我正在尝试创建一个国家和城市的从属下拉列表,基于所选的国家,我希望在该国家的另一个城市下拉列表。在我的Django模型中,不需要为国家和城市创建模型。
下面是我的代码:
models.py
from django.db import models
from django_countries.fields import CountryField
from partial_date import PartialDateField
class School(models.Model):
school_name = models.CharField(max_length = 30)
school_country = CountryField()
school_city = ??
school_population = models.IntegerField()
school_description = models.TextField(max_length = 300)
year_build = PartialDateField()
total_branches = models.IntegerField()
school_fees = models.IntegerField()
school_images = models.FileField(default=None)
def __str__(self):
return self.school_name 我能够让国家使用django-countries school_country = CountryField(),但我不知道如何在城市中做同样的事情。我看了看django-cities,但我不知道如何使用它
发布于 2021-09-15 23:09:27
Django字段选择。根据文档,字段选择是由两个项目的可迭代项组成的序列(例如(A,B),(A,B)…)用作某些字段的选项的步骤
from django.db import models
from django_countries.fields import CountryField
from partial_date import PartialDateField
SCHOOL_CITIES_CHOICES = (
("Newyork", "Newyork"),
("Dubai", "Dubai"),
("Arusha", "Arusha"),
("Nairobi", "Nairobi"),
("West papua", "West Papua"),
)
class School(models.Model):
school_name = models.CharField(max_length = 30)
school_country = CountryField()
school_city = models.CharField(
max_length = 20,
choices = SCHOOL_CITIES_CHOICES,
default = '1'
)
school_population = models.IntegerField()
school_description = models.TextField(max_length = 300)
year_build = PartialDateField()
total_branches = models.IntegerField()
school_fees = models.IntegerField()
school_images = models.FileField(default=None)
def __str__(self):
return self.school_name 发布于 2021-09-16 20:36:16
这是一个Python的问题,与Django无关。
你只需要一个能回答你问题的结构。它可以是这样的一个简单的字典:
{
"USA": ["New York", "..."],
"Canada": ["Ottawa", ".."]
}您可以将其存储在项目中的单独文件中。
因此,您可以为您支持的国家/地区列表使用.keys(),并且可以使用特定的国家/地区作为关键字来获取城市列表。
如果你需要在前端展示这个结构,你可以通过两种不同的方式来实现:
https://stackoverflow.com/questions/69200163
复制相似问题