我刚刚开始 Django 开发,我正在尝试使用来自另一个模型的 DB 条目列的选项动态填充 ChoiceField() 类。
这是我目前处理情况的方式:
categories_as_choices = map(lambda x: x.mycolumnname, MyObjectCategory.objects.all())
我不确定这是否是最“pythonic”的方法(或 Django 等效方法)。有谁知道是否有“更好”的方法?
Django 提供了一个专门为此设计的字段类:ModelChoiceField。
您需要__unicode__
像这样在类别模型上定义方法:
def __unicode__(self):
return self.mycolumnname
然后以您可以简单地使用的形式
category = forms.ModelChoiceField(queryset=MyObjectCategory.objects.all())