我正在创建一个调查表单,在用户选择时会有很多下拉菜单。这使我的models.py非常混乱。
我如何将选项存储在单独的数据文件中,以便每个模型都可以读取它们?
以下示例旨在让用户选择他们所处的状态。为简洁起见,我没有包含所有状态。
感谢您的帮助,我是Django的新手,一般编码并随时学习。
class StateChoice(forms.Form):
ALABAMA = 'Alabama'
ALASKA = 'Alaska'
#...
#...
WISCONSIN = 'Wisconsin'
WYOMING = 'Wyoming'
STATE = (
(ALABAMA, 'Alabama'),
(ALASKA, 'Alaska'),
#...
#...
(WISCONSIN, 'Wisconsin'),
(WYOMING, 'Wyoming'),
)
state = forms.ChoiceField(widget=forms.Select(), choices=STATE, initial=ALABAMA)
def __unicode__(self):
return self.STATE
答案 0 :(得分:0)
您可以使用django-localflavor
库来提供帮助:http://django-localflavor.readthedocs.org/en/latest/localflavor/us/
from django.db import models
from localflavor.us.us_states import US_STATES
class StateChoice(models.Model):
state = forms.ChoiceField(choices=US_STATES)
或者,创建只需将您拥有的所有常量移动到另一个文件,例如{app}目录中的utils.py
。
所以utils.py有:
ALABAMA = 'Alabama'
...
STATES = ((ALABAMA, ALABAMA), ...)
,您的模型如下:
from django.db import models
from .utils import STATES
class StateChoice(models.Model):
state = forms.ChoiceField(choices=STATES)