Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django,在forms.ChoiceField中使用可调用for选项的示例_Python_Django_Choicefield - Fatal编程技术网

Python django,在forms.ChoiceField中使用可调用for选项的示例

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

在Django文档中,它表示forms.ChoiceField的choices=参数可以是可调用的。 有没有人能给我举个例子来说明这是什么样子的?
在官方文档中找不到更多关于它的信息。

它们的意思是它可以接受一个函数(或者可以调用的东西,因此它的名字)来返回它想要的值。下面是一个简单的例子:

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之外调用一个函数吗?当然。只需导入它,并像使用其他文件一样使用它。