如何在Django中为表单构建包含国家列表的选择框

如何在Django中为表单构建包含国家列表的选择框,django,forms,drop-down-menu,Django,Forms,Drop Down Menu,我是django的新手,我正在构建一个表单,我需要一个选择框供用户选择他们的国家。我正在玩ChoiceField,我创建了一个单独的py文件,其中包含一个国家列表。我的布局是这样的: 表格文件: 从django进口国,我有一个py文件,其中包含国家列表 country=forms.ChoiceFieldCOUNTRIES,label=u'country' 我有点不希望它会工作-我得到一个错误,说它不能导入名称国家。我不知道该采取什么步骤来实现我的目标。有什么有用的提示吗?您可以像在非django

我是django的新手,我正在构建一个表单,我需要一个选择框供用户选择他们的国家。我正在玩ChoiceField,我创建了一个单独的py文件,其中包含一个国家列表。我的布局是这样的:

表格文件:

从django进口国,我有一个py文件,其中包含国家列表

country=forms.ChoiceFieldCOUNTRIES,label=u'country'


我有点不希望它会工作-我得到一个错误,说它不能导入名称国家。我不知道该采取什么步骤来实现我的目标。有什么有用的提示吗?

您可以像在非django python模块中一样导入模块

您使用国家列表创建的模块不是django模块,因此您不会从django导入它

如果您有一个文件,my_choices.py如下所示:

额外费用

COUNTRY_CHOICES = ( ('USA', 'USA'),
                    ('JPN', 'JAPAN'),
                    ('CAN', 'CANADA') )
它位于项目的根目录中:

myproject/
|_ __init__.py
|_ my_choices.py
|_ settings.py
...
如果项目位于PYTHONPATH中,则可以通过键入以下内容导入选项:

>>> from my_choices import COUNTRY_CHOICES
>>> print COUNTRY_CHOICES
(('USA', 'USA'), ('JPN', 'JAPAN'), ('CAN', 'CANADA'))
>>> 
我通常会将这样的内容放在utils文件夹中:

myproject/
|_ __init__.py
|_ utils/
   |_ __init__.py
   |_ my_choices.py
因此:

在你的表单中.py

from utils.my_choices import COUNTRY_CHOICES

class SomeForm(forms.Form):
    country = forms.ChoiceField(choices=COUNTRY_CHOICES, label=u'Country')

您可以像在非django python模块中一样导入模块

您使用国家列表创建的模块不是django模块,因此您不会从django导入它

如果您有一个文件,my_choices.py如下所示:

额外费用

COUNTRY_CHOICES = ( ('USA', 'USA'),
                    ('JPN', 'JAPAN'),
                    ('CAN', 'CANADA') )
它位于项目的根目录中:

myproject/
|_ __init__.py
|_ my_choices.py
|_ settings.py
...
如果项目位于PYTHONPATH中,则可以通过键入以下内容导入选项:

>>> from my_choices import COUNTRY_CHOICES
>>> print COUNTRY_CHOICES
(('USA', 'USA'), ('JPN', 'JAPAN'), ('CAN', 'CANADA'))
>>> 
我通常会将这样的内容放在utils文件夹中:

myproject/
|_ __init__.py
|_ utils/
   |_ __init__.py
   |_ my_choices.py
因此:

在你的表单中.py

from utils.my_choices import COUNTRY_CHOICES

class SomeForm(forms.Form):
    country = forms.ChoiceField(choices=COUNTRY_CHOICES, label=u'Country')
您是否能够毫无问题地键入manage.py shell和来自django进口国的命令?我不这么认为。请确认。您是否能够键入manage.py shell和来自django进口国的命令而没有任何问题?我不这么认为。请确认。