Моя модель - это диктофон такого рода: {"category": category, "dish_name": dish_name, "index": index} (индекс используется только для принудительного отображения продуктов в определенном порядке)Невозможно настроить edit_form Flask-Admin: TypeError: edit_form() получил неожиданный аргумент ключевого слова 'obj'
В Flask-Admin Я пытаюсь настроить его форму, чтобы иметь возможность изменять категорию продукта из выпадающего списка из моих категорий (другая коллекция mongodb). Я получаю запрос текстового поля с именем и пустым полем выбора. Я думаю, это потому, что на самом деле модель не содержит всех категорий, поэтому форма «не знает», что отображать.
Затем я попытался переопределить 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» вообще не кажется неожиданным ...