首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >获取城市和国家/地区下拉列表Django

获取城市和国家/地区下拉列表Django
EN

Stack Overflow用户
提问于 2021-09-15 21:50:41
回答 2查看 213关注 0票数 0

我正在尝试创建一个国家和城市的从属下拉列表,基于所选的国家,我希望在该国家的另一个城市下拉列表。在我的Django模型中,不需要为国家和城市创建模型。

下面是我的代码:

代码语言:javascript
复制
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,但我不知道如何使用它

EN

回答 2

Stack Overflow用户

发布于 2021-09-15 23:09:27

Django字段选择。根据文档,字段选择是由两个项目的可迭代项组成的序列(例如(A,B),(A,B)…)用作某些字段的选项的步骤

代码语言:javascript
复制
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 
票数 0
EN

Stack Overflow用户

发布于 2021-09-16 20:36:16

这是一个Python的问题,与Django无关。

你只需要一个能回答你问题的结构。它可以是这样的一个简单的字典:

代码语言:javascript
复制
{
   "USA": ["New York", "..."],
   "Canada": ["Ottawa", ".."]
}

您可以将其存储在项目中的单独文件中。

因此,您可以为您支持的国家/地区列表使用.keys(),并且可以使用特定的国家/地区作为关键字来获取城市列表。

如果你需要在前端展示这个结构,你可以通过两种不同的方式来实现:

  1. 将所有这些内容发送到前端,并在前端解析这些内容,或者
  2. 创建一个API端点,并在用户选择国家时回答特定城市的列表。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69200163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档