是否可以限制SelectModelField在wtf-peewee中的选择

问题描述:

我使用带烧瓶peewee和wtfpeewee的烧瓶。
所以,我有模特那样:是否可以限制SelectModelField在wtf-peewee中的选择

class Category(Model): 
    name = CharField() 
    user = ForeignKeyField(User, null=True) 

class Record(Model): 
    value = DecimalField() 
    category = ForeignKeyField(Category) 
    user = ForeignKeyField(User) 

当我创建的形式为用户添加记录,我这样做的:

RecordForm = model_form(Record) 

在数据库中的所有类别都可以在现场选择此表单的“类别”,但我需要将“类别”字段的可用选项限制为具有用户字段等于无或当前(登录)用户的类别子集。我知道如何通过查询来限制它,但对于表单字段该如何做?

对不起看到这个刚才

您可以在类定义的时间做到这一点:

from wtfpeewee.fields import SelectQueryField 

class MyForm(Form): 
    category = SelectQueryField(query=Category.filter(some_val=other_val) 

另外,我相信你可以在运行时做到这一点:

my_form = MyForm() 
my_form.category.query = Category.filter(user=some_user)