Много-много-много отношений с enum - PullRequest
1 голос
/ 09 февраля 2020

У меня есть модели / таблицы с пользователем и группой пользователей.

class User(db.Model, UserMixin):

    __tablename__ = "user"

    id = db.Column(
        db.Integer,
        primary_key=True
    )
    username = db.Column(
        db.String(20),
        unique=True
    )
    [...]
    group_id = db.Column(db.Integer, ForeignKey('user_group.id'))
    group = db.relationship(UserGroup)
    [...]
class UserGroup(db.Model):

    __tablename__ = "user_group"

    id = db.Column(
        db.Integer,
        primary_key=True
    )
    name = db.Column(
        db.String(32),
        unique=False
    )
    [...]

и enum с типом привилегий

from enum import Enum


class UserGroupPrivilege(Enum):

    PAYMENTS = "payments"
    USERS_MANAGEMENT = "users_management"
    [...]

Есть ли способ подключить это, чтобы показать и отредактируйте это в flask -admin в хорошем виде? Что-то вроде отношения «многие ко многим», но с UserGroup для перечисления UserGroupPrivilege.

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

enter image description here

...