2013-12-19 49 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(選擇=類別)' – karthikr

回答

2

你應該在Meta類中指定模式和領域會自動生成:

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

您可以添加額外的表單字段,如果你想。閱讀更多關於ModelFroms

更新作爲karthikr在評論中提到。如果你想在一個表單字段設置可供選擇,你必須使用forms.ChoiceField,像這樣:

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

原諒我,我得到的,以及,認爲它不需要把我的整個模型+形式放進去,因爲它的時間更長了,我只想說明我遇到的問題 –