Python django,在forms.ChoiceField中使用可调用for选项的示例
在Django文档中,它表示forms.ChoiceField的choices=参数可以是可调用的。 有没有人能给我举个例子来说明这是什么样子的?Python django,在forms.ChoiceField中使用可调用for选项的示例,python,django,choicefield,Python,Django,Choicefield,在Django文档中,它表示forms.ChoiceField的choices=参数可以是可调用的。 有没有人能给我举个例子来说明这是什么样子的? 在官方文档中找不到更多关于它的信息。它们的意思是它可以接受一个函数(或者可以调用的东西,因此它的名字)来返回它想要的值。下面是一个简单的例子: def callableForChoices(): return [("Value1", "Name1"), ("Value2", "Name2"), ("Value3", "Name3")] fo
在官方文档中找不到更多关于它的信息。它们的意思是它可以接受一个函数(或者可以调用的东西,因此它的名字)来返回它想要的值。下面是一个简单的例子:
def callableForChoices():
return [("Value1", "Name1"), ("Value2", "Name2"), ("Value3", "Name3")]
forms.ChoiceField(choices=callableForChoices)
这通常在您需要动态构建选项时使用。它们意味着它可以接受一个函数(或者可以调用的东西,因此名称)来返回它想要的值。下面是一个简单的例子:
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)
当然,不希望这些是静态值。因此,在这里,callable是最好的选择:
def get_days():
return (
(date.today(), 'Today'),
(date.today() - timedelta(1), 'Yesterday'),
)
forms.ChoiceField(choices=get_days)
我能想到的最简单的例子是:
DAY_CHOICES = (
('2016-01-02', 'Today'),
('2016-01-01', 'Yesterday'),
)
forms.ChoiceField(choices=DAY_CHOICES)
当然,不希望这些是静态值。因此,在这里,callable是最好的选择:
def get_days():
return (
(date.today(), 'Today'),
(date.today() - timedelta(1), 'Yesterday'),
)
forms.ChoiceField(choices=get_days)
非常感谢你!是否可以从forms.py外部调用函数?当然可以,只需从另一个模块导入即可。非常感谢!是否可以从forms.py外部调用函数?当然,只需从另一个模块导入它。是的,这正是我要做的。但是你知道我能不能从forms.py之外调用一个函数吗?当然。只需导入它并像使用其他任何东西一样使用它。是的,正是我想做的。但是你知道我能不能从forms.py之外调用一个函数吗?当然。只需导入它,并像使用其他文件一样使用它。