Как получить доступ к модели в viewmodel - PullRequest
0 голосов
/ 07 октября 2019

Я хочу получить доступ к модели в потомке ModelView следующим образом:

class MyAppLibraryView(MyModelView):
    if model != Salary:
        column_searchable_list = ['name', ]
    form_excluded_columns = ['date_created', 'date_modified', ]
    column_display_pk = True

Этот класс используется следующим образом:

admin.add_view(MyAppLibraryView(Section, db.session))
admin.add_view(MyAppLibraryView(Office, db.session))
admin.add_view(MyAppLibraryView(Salary_reference, db.session))
admin.add_view(MyAppLibraryView(Salary, db.session))

В MyAppLibraryView модель неизвестна классу,Как получить доступ к моделям, переданным в класс MyAppLibraryView?

1 Ответ

0 голосов
/ 07 октября 2019

Как вы можете видеть в код фляги-администратора , вы можете получить доступ к модели с помощью self.model.

. У вас есть несколько способов переопределить column_searchable_list в зависимости от модели.

  1. Подкласс (как я рекомендую)
class MyAppLibraryView(MyModelView):
    form_excluded_columns = ['date_created', 'date_modified', ]
    column_display_pk = True


class MyAppLibrarySalaryView(MyAppLibraryView):
    column_searchable_list = ['name', ]


admin.add_view(MyAppLibrarySalaryView(Salary, db.session))
Вы можете установить его в __init__.
class MyAppLibraryView(MyModelView):
    def __init__(self, model, *args, **kwargs):
        if model != Salary:
            self.column_searchable_list = ['name',]
]
        super(MyAppLibraryView, self).__init__(model, *args, **kwargs)
...