【发布时间】:2020-09-24 11:15:20
【问题描述】:
我正在使用 flask-admin 对我的数据库模型进行简单的编辑。这是关于向客户出租滑雪板。
这是我的出租视图(sql_alchemy DB 模型也是如此):
class RentalView(ModelView):
column_list = ("customer", "from_date", "to_date", "ski", "remarks")
...
customer 和ski 是各自模型的关系字段。我只想在编辑视图中显示在此时间段内未被其他人租用的这些滑雪板。
我一直在到处寻找如何动态设置编辑表单的选项,但它根本无法完全发挥作用。
我试过了
def on_form_prefill(self, form, id):
query = db.session.query... # do the query based on the rental "id"
form.ski.query = query
这会正确显示过滤后的查询。但是,在提交表单时,QuerySelectField ski 的.query 属性再次变为None,从而导致 query = self.query or self.query_factory() TypeError: 'NoneType' object is not callable 错误。不知道为什么要重置查询?!
有没有人知道如何根据编辑对象的 id 来处理动态查询的不同策略?
【问题讨论】:
标签: flask flask-sqlalchemy flask-admin