2011-05-02 4 views
1

저는 장고를 처음 접했고 양식을 작성 중이며 사용자가 국가를 선택할 수있는 선택 상자가 필요합니다. ChoiceField를 가지고 노는 중이며 국가 목록이있는 별도의 py 파일을 만들었습니다. 내 레이아웃이 같은 것입니다 :Django에서 양식에 대한 국가 목록을 가진 선택 상자를 만드는 방법

형태의 파일 : 국가 목록

국가 = forms.ChoiceField (국가, 라벨 = u'Country와 평 파일이 #I 장고 수입 국가에서

')

나는 그것이 일하기를 기대하지 않았다. 나는 이름 국가를 가져올 수 없다는 오류가 발생했다. 나는 내 목표를 달성하기 위해 어떤 단계를 취해야할지 모른다. 유용한 팁이 있습니까?

+0

당신은'manage.py을 입력 할 수 있습니까 셸'과'django import COUNTRIES'에서 아무런 문제없이? 나는 그렇게 생각하지 않는다. 확인해주세요. – Paolo

답변

4

모듈을 비 django python 모듈에서와 같은 방식으로 가져올 수 있습니다.

국가 목록으로 만든 모듈은 장고 모듈이 아니므로 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')) 
>>> 
그래서

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

:

내가 보통 유틸 폴더에 같은 물건을 넣어 당신의 forms.py에

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

from utils.my_choices import COUNTRY_CHOICES 

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