如果可能的话,我想要一些关于如何使它更通用的指导:
def get_industry_choices(self):
industries = Industry.objects.all().order_by('name')
ind_arr = [(ind.id, ind.name) for ind in industries]
return ind_arr
基本上,此函数将按choices
预期返回forms.ChoiceField
。我需要在几个地方这样做,并且想让上面的函数更通用。我知道如何获得industries = Industry.objects.all().order_by('name')
通用的,但第二部分是我不确定的。创建元组时,它具有(ind.id, ind.name)
. 可以是任何值,ind.name
具体取决于传入的模型(它可能并不总是name
在模型中)。
我试图在几个地方阅读此内容,包括:
上面的资源显示了如何使用传入的函数来完成它,但这似乎有点矫枉过正?如果无论如何我都必须将一个函数作为参数传递,那么用一个更多的函数使它更通用有什么意义呢?
[编辑]
基本上我想产生类似的东西:
TITLE_CHOICES=(
(1, 'Mr.'),
(2, 'Ms.'),
(3, 'Mrs.'),
(4, 'Dr.'),
(5, 'Prof.'),
(6, 'Rev.'),
(7, 'Other'),
)
因此,当我这样做时,forms.ChoiceField
我可以通过TITLE_CHOICES
例如可能的选择。第一个值是我在提交表单时得到的值,第二个值是用户在表单上看到的值。我希望能够以编程方式使用任何模型创建它,我在上面的示例中传入模型名称和一个字段,name
. 我想创建这样的元组(id, name)
。但是name
可以用不同型号的任何东西代替...