django,在 forms.ChoiceField 中使用可调用选项的示例
django, examples of using a callable for choices in forms.ChoiceField
在 Django 文档中,它说 forms.ChoiceField 的 choices= 参数可以是可调用的。 https://docs.djangoproject.com/en/1.10/ref/forms/fields/
那里的任何人都可以给我一个例子吗?
在官方文档中找不到更多相关信息。
它们的意思是它可以接受一个函数(或可以调用的东西,因此得名)应该return它想要的值。这是一个简单粗略的例子:
def callableForChoices():
return [("Value1", "Name1"), ("Value2", "Name2"), ("Value3", "Name3")]
forms.ChoiceField(choices=callableForChoices)
这通常在您需要动态构建选项时使用。
我能想到的最简单的例子:
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)
在 Django 文档中,它说 forms.ChoiceField 的 choices= 参数可以是可调用的。 https://docs.djangoproject.com/en/1.10/ref/forms/fields/ 那里的任何人都可以给我一个例子吗? 在官方文档中找不到更多相关信息。
它们的意思是它可以接受一个函数(或可以调用的东西,因此得名)应该return它想要的值。这是一个简单粗略的例子:
def callableForChoices():
return [("Value1", "Name1"), ("Value2", "Name2"), ("Value3", "Name3")]
forms.ChoiceField(choices=callableForChoices)
这通常在您需要动态构建选项时使用。
我能想到的最简单的例子:
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)