如何编辑flask-admin以支持多租户?

1 投票
1 回答
685 浏览
提问于 2025-04-17 22:42

我正在使用Flask-peewee,想找个方法给管理员设置权限,我想做一个多租户的管理员仪表盘。

我已经做了一个用来显示交易的功能:

class DealsAdmin(ModelAdmin):
    columns = ('deal_name', 'deal_desc', 'created_on')
    exclude = ('created_on','merchand_id')

    def get_query(self):
        loggedin_username=auth.get_logged_in_user()
        merchant=Merchant.select().where(Merchant.id == loggedin_username).get()
        return self.model.select().where(self.model.merchand_id == loggedin_username)

所以现在我想在他们想编辑表单的时候,保持登录用户的ID作为商户ID。

在这里输入图片描述

*图片上的文字说明:Merchant_id必须默认是auth.loggedinid。

1 个回答

2

把这个字段从表单中去掉,然后在模型变化时进行处理:

class MyDealModelView(ModelView):
    form_excluded_columns = ('merchant_id',)

    def on_model_change(form, model, is_created):
        model.merchant_id = login.current_user.merchant_id;

http://flask-admin.readthedocs.org/en/latest/api/mod_model/#flask.ext.admin.model.BaseModelView.on_model_change

撰写回答