2012-12-17 48 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())