2013-12-19 2 views
0

내 ModelForm에서 내 모델 선택 옵션을 어떻게 사용해야하는지 궁금합니다.django는 modelform에서 모델 선택을 사용합니다.

예 (모델) :

class NPCGuild(models.Model): 
    CATEGORIES=(
     ('COM', 'Combat'), 
     ('CRA', 'Crafting'), 
     ('WAR', 'Warfare'), 
    ) 
    faction = models.ForeignKey(Faction) 
    category = models.CharField(max_length=3, choices=CATEGORIES) 
    name = models.CharField(max_length=63) 

내 양식 :

class NPCGuildForm(forms.ModelForm): 
    name = forms.CharField() 
    category = forms.CharField(
         some widget?) 
    faction_set = Faction.objects.all() 
    faction = forms.ModelChoiceField(queryset=faction_set, empty_label="Faction", required=True) 

    class Meta: 
     model = NPCGuild 
     fields = ['name', 'category', 'faction'] 

당신이 볼 수 있듯이, 나는 choicefield로 내 모델에서 내 선택을 얻기 위해 일을해야 어떤 메신저 확실하지. 아마도 ModelChoiceField를 사용하여 수행 할 수도 있지만 선택 사항을 얻는 방법은 무엇입니까?

누군가 당신은 메타 클래스 모델을 지정해야하며, 필드가 자동으로 생성됩니다

+1

어떻게 분류 '에 대해 = forms.ChoiceField (선택 = CATEGORIES)' – karthikr

답변

2

여기 좀 도와 주시겠습니까 :

class NPCGuildForm(forms.ModelForm): 
    class Meta: 
     model = NPCGuild 

당신은 당신이 원하는 경우 별도의 양식 필드를 추가 할 수 있습니다. ModelFroms에 대해 더 읽어보십시오.

업데이트karthikr 주석에 언급 됨. 폼 필드에 가능한 선택을 설정하려면 다음과 같이 forms.ChoiceField를 사용해야합니다 :

category = forms.ChoiceField(choices=NPCGuild.CATEGORIES) 
+0

실례, 나뿐만 아니라 것을 얻었다 , 그것은 내 전체 모델 + 폼을 넣을 필요가 없다고 생각했다. 그 이후로는 더 오래, 나는 단지 내가 가진 문제를 설명하기를 원했다. –