获取城市和国家下拉列表Django

2024-09-27 22:33:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个国家和城市的相关下拉列表,根据所选的国家/地区,我希望在该国家/地区有另一个城市下拉列表。在我的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城市,但不知道如何使用它


Tags: djangonamefrom模型import列表models国家
2条回答

Django字段选择。根据文档,字段选择是一个序列,由恰好两个项目(例如,[(a,B),(a,B)…])的iterables组成,用作某些字段的选择

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 

这是Python的问题,不是Django的问题

你只需要一个结构,答案就在你的问题上。它可以是这样一本简单的词典:

{
   "USA": ["New York", "..."],
   "Canada": ["Ottawa", ".."]
}

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

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

如果需要在前端显示此scructure,可以使用两种不同的方法:

  1. 将所有这些内容发送到前端,并在前端解析这些内容
  2. 当用户选择一个国家时,创建一个API端点并回答特定城市的列表

相关问题 更多 >

    热门问题