在Django文档中,它表示forms.ChoiceField的choices =参数可以是可调用的。 https://docs.djangoproject.com/en/1.10/ref/forms/fields/ 那里的任何人可以给我一个如何看起来像的例子? 在官方文档中找不到更多关于它的信息。
答案 0 :(得分:2)
它们意味着它可以接受一个函数(或者可以调用的东西,因此名称),它应该返回它想要的值。这是一个快速粗略的例子:
def callableForChoices():
return [("Value1", "Name1"), ("Value2", "Name2"), ("Value3", "Name3")]
forms.ChoiceField(choices=callableForChoices)
当您需要动态构建选项时,通常会使用此选项。
答案 1 :(得分:1)
我能想到的最简单的例子:
DAY_CHOICES = (
('2016-01-02', 'Today'),
('2016-01-01', 'Yesterday'),
)
forms.ChoiceField(choices=DAY_CHOICES)
当然,这些都是静态值并不可取。因此,可调用是最好的选择:
def get_days():
return (
(date.today(), 'Today'),
(date.today() - timedelta(1), 'Yesterday'),
)
forms.ChoiceField(choices=get_days)