我有带参数资源的形式极限形式
class LimitForm(FlaskForm):
def __init__(self, resource: Resource, *args, **kwargs):
super(LimitForm, self).__init__(*args, **kwargs)
self.period.choices = Period.choices()
我想在其他表单中使用此表单作为通过FormField的field。像一个
^{pr2}$但此代码引发异常TypeError:\uuInit_Uu()缺少1个必需的位置参数:“resource”
如何将资源从LimitsForm传递到LimitForm?在
谢谢
在封闭类的正常初始化之后,您可能会发现执行一些附加逻辑更容易,例如,在结尾用特殊的逻辑实现您自己的
LimitsForm.__init__()
。否则,您可能不得不将FieldList
和FormField
子类并重写它们的process
方法,如果您只需要为一个用例执行一个简单的额外步骤,那么您的生活将变得复杂起来!在例如,我有一个例子,我想做一些类似于您请求的事情,并通过一个
FormField
传递一些特殊的kwargs。Flask WTF在默认情况下似乎不会这样做。在本例中,我使用的是一个QuerySelectField
,当我调用SQLAlchemy时,我想将一些特殊的过滤器传递给它。在在我的控制器中,对这个的调用就像
在这里,studio是一个特殊过滤器的一部分,只有在运行时才知道。但是,这个
studio
kwarg不能通过嵌套的FormField
。在因为我必须在Flask-WTF中扩展并重新布线核心逻辑,以将这个kwarg通过FormField传递到
^{pr2}$GatingExtraForm
,所以我对这个问题的解决方案是这样做:我承认,这有点麻烦,但有时对于很少的用例来说,这是一个合理的权衡。如果这是一个常见的模式,那么你可以深入到扩展瓶WTF。在
相关问题 更多 >
编程相关推荐