Python 无法自定义编辑表单烧瓶管理员:类型错误:编辑表单()获得意外的关键字参数';obj';

Python 无法自定义编辑表单烧瓶管理员:类型错误:编辑表单()获得意外的关键字参数';obj';,python,flask,flask-admin,Python,Flask,Flask Admin,我的模型是这样一个目录:{“category”:category,“dish_name”:dish_name,“index”:index}(索引只是用来强制产品按一定顺序显示) 在Flask Admin中,我试图自定义其表单,以便能够从我的类别下拉列表(另一个mongodb集合)中更改产品的类别。 我得到一个带有名称的文本字段和一个空的selectfield提示。我认为这是因为模型实际上并不包含所有类别,所以表单“不知道”要显示什么 然后,我尝试覆盖edit_form()以强制表单中的类别列表,

我的模型是这样一个目录:{“category”:category,“dish_name”:dish_name,“index”:index}(索引只是用来强制产品按一定顺序显示)

在Flask Admin中,我试图自定义其表单,以便能够从我的类别下拉列表(另一个mongodb集合)中更改产品的类别。 我得到一个带有名称的文本字段和一个空的selectfield提示。我认为这是因为模型实际上并不包含所有类别,所以表单“不知道”要显示什么

然后,我尝试覆盖edit_form()以强制表单中的类别列表,方法如下:

def edit_form(self, model):
    try:
        pk = self.get_pk_value(model)
        if not pk:
            raise ValueError('Document does not have _id')
        choices = list(db.db.categories.find())
        choices.sort(key=lambda x: x['order'])
        sorted_choices = [(cat['name'], cat['name']) for cat in choices]
        model['category'] = sorted_choices
        return super(MyModelView, self).edit_form(model)
    except Exception as ex:
        flash(gettext('Failed to edit product. %(error)s', error=str(ex)),
              'error')
        return False
但我得到了这个错误:

 File "C:\Python27\lib\site-packages\flask_admin\model\base.py", line 1264, in edit_view
form = self.edit_form(obj=model)
TypeError: edit_form() got an unexpected keyword argument 'obj'

这让我非常困惑,因为“obj”参数似乎一点也不意外…

只是猜测:flask admin使用命名的关键字变量
obj
调用
edit\u form
函数,而您已将其命名为
model
。这就是为什么对于您的
edit_form
版本,
obj
变量是“意外的”。尝试将函数签名更改为

def edit_form(self, obj):
并将功能体中的
model
更改为
obj
,是否有帮助