Как изменить входные данные из GUI / запроса в Flask admin до их преобразования в форму? В случае редактирования / создания модели - PullRequest
1 голос
/ 10 апреля 2020

Конверт:

python 2.7.x
Flask -Admin == 1.5.3
дБ - пн go (не обязательно)

Просмотр в admin:

class AView(ModelView):
    can_create = True
    can_edit = True
    can_delete = True

    column_editable_list = []
    column_list = ['some_ReferenceField_in_ListField']
    column_searchable_list = []

    form_ajax_refs = {
        'some_ReferenceField_in_ListField': {
            'fields': ['some_field']
        }
    }

Case:

GUI отправляет запрос на редактирование модели (через страницу администратора) и помещает список некоторых значений в поле 'some_ReferenceField_in_ListField' (просто в качестве примера). ). Этот запрос будет выглядеть так:
curl 'https://<host>/admin/model_name/edit/?url=<some_querystring>' -H 'content-type: multipart/form-data; boundary=----some boundary'--data-binary $'Content-Disposition: form-data; name="some_ReferenceField_in_ListField"\r\n\r\nsome_data__here\r\n------'

Вопрос:

Какой метод я должен переопределить, чтобы изменить some_data__here в поле some_ReferenceField_in_ListField, прежде чем оно будет передано <view_instance>.form?

PS:

На самом деле мне нужно заменить значения идентификаторами для вновь созданного объекта (но не спрашивайте меня, зачем мне эта странная вещь). Потому что, если форма уже есть, и я попытаюсь получить данные из формы, например self.form.some_ReferenceField_in_ListField.data Flask, вызовет исключение, например ValidationError: u'rgdrgdrg' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string , и ожидается, что coz rgdrgdrg не является форматом идентификатора mongoDB. Но это лирика.

PSS:

Я бы ожидал какой-нибудь self.request объект, как в Django. :)

...