使用Python Enum类作为Flask-WTF RadioField选项中的值

时间:2017-04-01 00:59:44

标签: python flask-wtforms

我想我可以使用Enum设置RadioField的选项我想在这些枚举值之间切换。但是,当我提交表单时,它永远不会使用枚举作为选择值进行验证。

from enum import Enum
class CompareMode(Enum) :
    Uninitialized = "Uninitialized"
    Single  = "Single"
    Average = "Average"

class SettingsPageForm( FlaskForm ):
    # This works...    
    compareMode = RadioField( choices=[ ( "CompareMode.Single" , CompareMode.Single.value ) , ( "CompareMode.Average" , CompareMode.Average.value ) ] , default="CompareMode.Single" )
    # This does not
    compareMode = RadioField( choices=[ ( CompareMode.Single , CompareMode.Single.value ) , ( CompareMode.Average , CompareMode.Average.value ) ] , default=CompareMode.Single )

flask-wtf对我能提供的值有限制吗?我知道RadioFields默认使用Required验证器,所以我想在验证过程中我的枚举选择会破坏某些东西,这就是为什么我的表单永远不会满足validate_on_submit。这有解决方法吗?从RadioField接收数据作为我可以分配给我的模型的枚举值会很好,但与此同时我将使用一个字符串转换回我的枚举。

0 个答案:

没有答案
相关问题