如何在 Django 中为表单构建一个包含国家/地区列表的选择框

发布于 2024-11-05 02:58:07 字数 329 浏览 0 评论 0原文

我对 django 真的很陌生,我正在构建一个表单,我需要一个选择框供用户选择他们的国家/地区。我正在使用 ChoiceField,并创建了一个包含国家/地区列表的单独 py 文件。我的布局是这样的:

表单文件:

from django import COUNTRIES #I有一个 py 文件,其中包含国家/地区列表

Country = forms.ChoiceField(COUNTRIES, label=u'Country')

我有点没想到它会起作用 -我收到一条错误消息,说它无法导入 name states 。我不知道要采取什么步骤来实现我的目标。有什么有用的提示吗?

I'm really new to django and I'm building a form and I need a select box for the user to select their country. I'm playing with the ChoiceField and I created a separate py file with a list of countries. my layout is something like this:

form file:

from django import COUNTRIES #I have a py file with the list of countries

country = forms.ChoiceField(COUNTRIES, label=u'Country')

I kinda didn't expect it to work - I got an error saying that it cannot import name countries . I don't know what step to take to achieve my goal. Any helpful tips?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

独闯女儿国 2024-11-12 02:58:07

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

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

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

extras.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

so:

>>> from utils.my_choices import COUNTRY_CHOICES
>>> COUNTRY_CHOICES
(('USA', 'USA'), ('JPN', 'JAPAN'), ('CAN', 'CANADA'))
>>> 

在 forms.py 中

from utils.my_choices import COUNTRY_CHOICES

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

you can import modules the same way you would in a non django python module.

The module you made with the list of countries is not a django module, so you don't import it from django.

If you had a file, my_choices.py which looked like this:

extras.py

COUNTRY_CHOICES = ( ('USA', 'USA'),
                    ('JPN', 'JAPAN'),
                    ('CAN', 'CANADA') )

and it is located in your project's root dir:

myproject/
|_ __init__.py
|_ my_choices.py
|_ settings.py
...

if your project is in the PYTHONPATH, you can import the choices by typing:

>>> from my_choices import COUNTRY_CHOICES
>>> print COUNTRY_CHOICES
(('USA', 'USA'), ('JPN', 'JAPAN'), ('CAN', 'CANADA'))
>>> 

i usually put stuff like this in a utils folder:

myproject/
|_ __init__.py
|_ utils/
   |_ __init__.py
   |_ my_choices.py

so:

>>> from utils.my_choices import COUNTRY_CHOICES
>>> COUNTRY_CHOICES
(('USA', 'USA'), ('JPN', 'JAPAN'), ('CAN', 'CANADA'))
>>> 

in your forms.py

from utils.my_choices import COUNTRY_CHOICES

class SomeForm(forms.Form):
    country = forms.ChoiceField(choices=COUNTRY_CHOICES, label=u'Country')
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文