2012-12-17 67 views
0

我剛剛開始在Django開發中,我試圖用另一個模型的數據庫條目列中的選項動態填充ChoiceField()類。如何將Django模型列的值映射到列表?

這是我目前接近情況的方式:我真的不知道這是最「Python的」辦法(或等效的Django)

categories_as_choices = map(lambda x: x.mycolumnname, MyObjectCategory.objects.all()) 

。有誰知道是否有「更好」的方式?

回答

2

Django提供專門爲此設計的字段類:ModelChoiceField

你需要在你的分類模型定義__unicode__方法是這樣的:

def __unicode__(self): 
    return self.mycolumnname 

然後在形式,你可以簡單地使用

category = forms.ModelChoiceField(queryset=MyObjectCategory.objects.all())