2014-09-17 4 views
2

Я пытаюсь настроить модель с флагом-администратором, чтобы отображать только определенные столбцы на вкладках «Редактировать» и «Создать». До сих пор я смог правильно настроить список, поставив его в моем подклассе:Конфигурации моделей Flask-Admin Model

class AuthUserView(AuthModelView): 
    column_list = ('username', 'email', 'roles', 'last_login_at', 'login_count') 

Отлично работает! Но теперь мои проблемы таковы. Также есть поле пароля, которое прикрепляется к пользователю. Когда вкладка редактирования открыта, я бы предпочел, чтобы столбец был оставлен вне поля редактирования. Кроме того, когда я создаю пользователя, я бы хотел, чтобы в нем было поле пароля, но чтобы зашифровать входные данные перед их хранением в базе данных (что означает, что мне просто нужно перехватить данные между «submit» и фактически их хранить ».

можно ли сделать эти настройки Спасибо за любую помощь

Edit:! Так что я был в состоянии получить поле пароля удалить, добавив этот код на мой взгляд:

form_excluded_columns = ('password') 

Только теперь это удаляет его из BOTH изменений и форм создания. Я только хочу, чтобы он удалялся из одного.

ответ

4

Получил это! Рисунок я надену свой ответ здесь, если кто-нибудь еще попадаются вопрос ... Вот что мой последний AuthUserView выглядело

class AuthUserView(AuthModelView): 
    form_edit_rules = ('roles', 'active', 'username', 'email', 'confirmed_at', 'last_login_at', 'current_login_at', 'last_login_ip', 'current_login_ip', 'login_count') 
    column_list = ('username', 'email', 'roles', 'last_login_at', 'login_count') 

    def create_model(self, form): 
     form.password.data = encrypt_password(form.password.data) 
     super(AuthUserView, self).create_model(form) 

Я использовал form_edit_rules для удаления пароля ключа из поля редактирования. Затем я переопределяю create_model для шифрования пароля, а затем вызываю метод super, чтобы фактически создать модель.

Смежные вопросы