我想就如何使这个更通用的,如果可能的一些指导:的Python +制作功能更通用
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
)。
我试着在一些地方在这读了,包括:
Passing functions with arguments to another function in Python?
上述资源展示了如何使用传递函数它做的,但似乎有点矫枉过正?如果我必须传递一个函数作为参数,那么通过多一个函数使它更具通用性又有什么意义呢?
[编辑]
基本上我想制作一些与此类似:
TITLE_CHOICES=(
(1, 'Mr.'),
(2, 'Ms.'),
(3, 'Mrs.'),
(4, 'Dr.'),
(5, 'Prof.'),
(6, 'Rev.'),
(7, 'Other'),
)
这样算下来forms.ChoiceField
当我在TITLE_CHOICES
通过例如,作为可能的选择。第一个值是我在提交表单时获得的值,第二个值是用户在表单上看到的值。我希望能够用任何模型以编程方式创建此模型,我传入模型名称和上面示例中的一个字段name
。我想创建这个元组,使其成为(id, name)
。但name
可以用任何不同的模型替换...
+1为寻找答案第一 – msw 2012-08-14 04:32:27
的问题是什么? – 2012-08-14 04:35:30
对不起,如果有困惑......但想知道是否有一些我错过了,试图使上述功能尽可能通用。 – KVISH 2012-08-14 04:36:53