标签: flask-admin

Flask-Admin Modelview配置

我正在尝试调整Flask-Admin Modelview以仅显示"编辑"和"创建"选项卡中的某些列.到目前为止,我已经能够通过将它放在我的子类中来正确配置列表:

class AuthUserView(AuthModelView):
    column_list = ('username', 'email', 'roles', 'last_login_at', 'login_count')
Run Code Online (Sandbox Code Playgroud)

效果很好!但现在我的问题是这个.还有一个附加到用户的密码字段.当编辑选项卡打开时,我希望该列不在编辑字段之外.此外,当我创建一个用户时,我希望密码字段存在,但是在将输入存储到数据库之前加密输入(意思是我只需要在"提交"和实际存储之间截取数据".

是否可以进行这些自定义?谢谢你的帮助!

编辑:所以我可以通过将此代码添加到我的视图中来删除密码字段:

form_excluded_columns = ('password')
Run Code Online (Sandbox Code Playgroud)

除此之外,这将从编辑和创建表单中删除它.我只希望它从一个删除.

python flask flask-admin

2
推荐指数
1
解决办法
1276
查看次数

Flask-Admin使用ModelView类覆盖默认视图?

如此处所述,您可以通过声明AdminIndexView的子类并将视图传递给管理应用程序来覆盖Flask-Admin的默认视图.是否可以使用ModelView类视图覆盖默认视图?如果是这样,我该怎么做呢?我只需要管理面板的ModelViews,无法弄清楚如何摆脱默认视图.谢谢您的帮助.

flask-admin

2
推荐指数
1
解决办法
2032
查看次数

Flask-Admin对一对多计数字段进行排序

假设我们在所有者和屏幕之间有一对多的关系(所有者可以拥有多个屏幕).

通过使用hybrid_property并在关系上调用count(),可以显示一列显示每个所有者拥有的屏幕数.但是我没有找到一种方法来使这个值计算值在Web界面中可排序:如果我在column_sortable_list中添加number_of_screens,我收到以下错误:

Traceback (most recent call last):
  File "app.py", line 71, in <module>
    admin.add_view(OwnerAdmin(Owner, db.session))
  File "C:\Python27\lib\site-packages\flask_admin\contrib\sqla\view.py", line 319, in __init__
    menu_icon_value=menu_icon_value)
  File "C:\Python27\lib\site-packages\flask_admin\model\base.py", line 718, in __init__
    self._refresh_cache()
  File "C:\Python27\lib\site-packages\flask_admin\model\base.py", line 795, in _refresh_cache
    self._sortable_columns = self.get_sortable_columns()
  File "C:\Python27\lib\site-packages\flask_admin\contrib\sqla\view.py", line 539, in get_sortable_columns
    column, path = self._get_field_with_path(c)
  File "C:\Python27\lib\site-packages\flask_admin\contrib\sqla\view.py", line 365, in _get_field_with_path
    value = getattr(model, attribute)
  File "C:\Python27\lib\site-packages\sqlalchemy\ext\hybrid.py", line 740, in __get__
    return self.expr(owner)
  File "app.py", line 48, in number_of_screens
    return self.screens.count()
  File "C:\Python27\lib\site-packages\sqlalchemy\orm\attributes.py", line 193, in __getattr__ …
Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy flask-admin

2
推荐指数
1
解决办法
1072
查看次数

在Flask-admin form_create中隐藏ModelView中的字段

有没有一种适当的方法来排除字段以Flask-admin的创建形式显示?我通常会这样做,以指定要在创建和编辑表单上显示的字段:

class UserView(sqla.ModelView):
    form_create_rules = { 'username' }
    form_edit_rules = ('username', 'photos')
Run Code Online (Sandbox Code Playgroud)

即使这按预期工作,但在运行应用程序时仍会收到以下警告:

UserWarning: Fields missing from ruleset: photos
  warnings.warn(text)
Run Code Online (Sandbox Code Playgroud)

有没有更好的方法来定义在每个表格上显示哪些字段不会导致我出现该错误?

flask-admin

2
推荐指数
1
解决办法
1971
查看次数

Flask-Admin:将自定义属性添加到column_list

我需要将一个SQLAlchemy模型类的自定义属性添加到我的Flask-Admin视图中.它做了一些我希望在列列表中显示的计算.

class Withdrawal(db.Model):   
    __tablename__ = 'withdrawals'
    id = db.Column(db.Integer, primary_key=True)
    fabric_id = db.Column(db.Integer, db.ForeignKey('fabrics.id'))
    fabric  = db.relationship('Fabric', backref='withdrawals')
    length = db.Column(db.Float)

class Fabric(db.Model):
    __tablename__ = 'fabrics'
    name = db.Column(db.String(256))
    id = db.Column(db.Integer, primary_key=True)
    org_length = db.Column(db.Float)

    @property
    def length(self):
        return self.org_length - sum(x.length for x in self.withdrawals)
Run Code Online (Sandbox Code Playgroud)

我将Fabric.length属性添加到我的视图中,column_list但不会在新列中看到值.

class FabricModelView(ModelView):   
    column_list = ('org_length', Fabric.length)
Run Code Online (Sandbox Code Playgroud)

结果应该是具有计算长度的列,但实际上没有任何内容显示在添加的列中.

截图

所以我的问题是:有没有办法在Flask-Admin视图中向​​列列表添加自定义属性?

python sqlalchemy flask flask-sqlalchemy flask-admin

2
推荐指数
1
解决办法
2392
查看次数

flask-admin:如何根据个人用户而不是角色自定义视图?

众所周知,flask-admin允许具有相同角色的用户拥有相同的特权。但是,在我的应用程序中,我只想限制创建查询的用户进行查看和编辑。

例如,有许多用户具有相同的角色,称为“开发人员”,他/她创建代码审查并等待批准。

下图显示了开发人员Gina可以在列表中看到开发人员Bill的项目(这是不希望的)。我只想实现Gina,而审阅者(此处为WeskerSteve)可以在列表中查看此项目。

我将代码放在这里 ,如果不合适,我将删除链接。提前致谢。

在此处输入图片说明

python flask flask-sqlalchemy flask-admin

2
推荐指数
1
解决办法
842
查看次数

flask-admin:如何在编辑和创建表单中显示有意义的外键信息?

我有一个使用SQLAlechemy的烧瓶应用程序的Flask-Admin界面,我似乎无法弄清楚如何处理外键.具体来说,我有以下两种模式:

class DoctorType(db.Model):
    __tablename__ = 'doctor_type'
    id = db.Column(db.Integer, primary_key=True)
    doctor_type_english_name = db.Column(db.Unicode(255))
    doctors = db.relationship('Doctor')

    def __unicode__(self):
        return self.doctor_type_english_name

class Doctor(db.Model):
    __tablename__ = 'doctor'
    id = db.Column(db.Integer, primary_key=True)
    doctor_english_name = db.Column(db.Unicode(255))
    doctor_type_id = db.Column(db.Integer, db.ForeignKey('doctor_type.id'))

    def __unicode__(self):
        return self.doctor_english_name
Run Code Online (Sandbox Code Playgroud)

我想创建或编辑flask-admin形式的doctor_type_id字段是doctor_type_english_name的下拉列表,而不是像这样的整数输入:

医生类型输入字段

__unicode__在模型上有函数(我使用的是python 2.7).我尝试在自定义表单视图中修改form_ajax_refs但没有成功.任何帮助将非常感激!

python sqlalchemy flask flask-sqlalchemy flask-admin

2
推荐指数
2
解决办法
1585
查看次数

如何为Flask-Admin添加摘要行?

在flask-admin index_view中,我正在显示行的财务信息。

我想在index_view表的底部添加一个额外的行“摘要行”,该行汇总所有列。

我该怎么做?

在此处输入图片说明

python flask-admin

2
推荐指数
1
解决办法
1241
查看次数

Flask Admin扩展带有自定义按钮的“ with select”下拉菜单

我正在使用flask admin的内置视图。如下面的图片所示:在此处输入图片说明

我想尝试的很简单:我只想使用自定义按钮扩展下拉菜单。此按钮应对所有选定项目执行一些操作。烧瓶是否有内置功能,我可以在其中简单地添加一个动作按钮?

python flask flask-admin

2
推荐指数
1
解决办法
778
查看次数

其他操作按钮在flask-admin上不起作用

我正在尝试向flask-admin表单添加其他操作。

在此处输入图片说明

它必须增加额定值(+1),并且可以批量操作,但不能单次使用。请帮助我找到错误,我花了很多时间尝试使此事情正常运行。

这是代码:

我在模板文件夹中创建了一个html模板-custom_lists.html

{% extends 'admin/model/list.html' %}
{% block list_row_actions %}
    {{ super() }}
  <form class="icon" method="POST" action="/admin/user/action/">
    <input id="action" name="action" value="approve" type="hidden">
    <input name="rowid" value="{{ get_pk_value(row) }}" type="hidden">
    <button onclick="return confirm('Are you sure you want to approve selected items?');" title="Approve">
      <span class="fa fa-ok glyphicon glyphicon-ok"></span>
    </button>
  </form>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)

这成功地在列表上显示了一个图标,但是如果我单击它,它会说

未找到

在服务器上找不到请求的URL。如果您手动输入网址,请检查拼写,然后重试。

添加到模板文件夹,并添加到AdidasView类,如下所示:

list_template = 'custom_list.html'
@action('approve', 'Approve', 'Are you sure you want to approve selected items?')
def action_approve(self, ids):
    try:
        query = Adidas.query.filter(Adidas.id.in_(ids))

        count = 0 …
Run Code Online (Sandbox Code Playgroud)

python jinja2 flask flask-sqlalchemy flask-admin

2
推荐指数
1
解决办法
1002
查看次数

标签 统计

flask-admin ×10

python ×8

flask ×7

flask-sqlalchemy ×5

sqlalchemy ×2

jinja2 ×1