Flask-admin как убрать действие для редактирования и удалить запись - PullRequest
0 голосов
/ 26 января 2019

Я делаю приложение оплаты за обучение, используя Flask и используя Flask-admin для управления платежом. В этом приложении есть три роли , которые суперпользователь , администратор школы и родитель , которые хотят обучаться у своих детей.

Я знаю, как сделать роль для суперпользователя и школьного администратора , который суперпользователя может создать администратор школы , а администратор школы может добавлять, редактировать или удалять данные ученика.

пока, это мой код для школьного администратора модель просмотра:

class SchoolAdminModelView(sqla.ModelView):
    def is_accessible(self):
        if not current_user.is_active or not current_user.is_authenticated:
            return False
        if current_user.has_role('schooladmin'):
            return True
        return False
    def _handle_view(self, name, **kwargs):
        if not self.is_accessible():
            if current_user.is_authenticated:
                abort(403)
            else:
                return redirect(url_for('security.login', next=request.url))

Но для parent я хочу, чтобы родительский аккаунт просто мог видеть или читать данные без доступа для их изменения.

Как на картинке ниже: enter image description here Это представление school admin , теперь для учетной записи parent я хочу удалить значок редактирования и удаления, или функция -

Итак, как это сделать ..?

1 Ответ

0 голосов
/ 26 января 2019

Согласно документам https://flask -admin.readthedocs.io / en / latest / api / mod_model / # flask.ext.admin.model.BaseModelView.can_create Вы можете добавить атрибуты к модели, такие как редактировать, удалять, создавать. Просто свяжите это с определенной ролью, где это необходимо.

...