相关疑难解决方法(0)

flask-admin形式:根据字段1的值限制字段2的值

我一直努力在flask-admin中实现的一个功能是当用户编辑表单时,一旦设置了字段1就限制字段2的值.

让我用文字举一个简化的例子(实际的用例更复杂).然后我将展示实现该示例的完整要点,减去"约束"功能.

假设我们有一个数据库,可以跟踪一些软件"配方",以各种格式输出报告.在recipe我们的样本数据库的表中有两个配方:"严重的报告","ASCII艺术".

为了实现每个配方,我们从几种方法中选择一种.method我们数据库的表有两个方法:"tabulate_results","pretty_print".

每种方法都有参数.该methodarg表有两个参数名称"tabulate_results"("rows","display_total")和两个参数"pretty_print"("embellishment_character","lines_to_jump").

现在,对于每个配方("严肃报告","ASCII艺术"),我们需要提供各自方法的参数值("tabulate_results","pretty_print").

对于每个记录,该recipearg表允许我们选择一个配方(即字段1,例如"严重报告")和参数名称(即字段2).问题是显示了所有可能的参数名称,而它们需要根据字段1的值进行约束.

我们可以实现哪些过滤/约束机制,一旦我们选择"严重报告",我们知道我们将使用"tabulate_results"方法,因此只有"rows"和"display_total"参数可用?

我正在考虑一些AJAX巫术,它检查Field 1并为Field 2值设置查询,但不知道如何继续.

您可以通过使用要点来看到这一点:单击Recipe Arg选项卡.在第一行("严重报告")中,如果您尝试通过单击来编辑"Methodarg"值,则所有四个参数名称都可用,而不是仅两个.

# full gist: please run this

from flask import Flask
from flask_admin import Admin
from flask_admin.contrib import sqla
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Column, ForeignKey, Integer, String
from sqlalchemy.orm import relationship

# Create application
app = Flask(__name__)

# Create dummy secrey key so we can use sessions
app.config['SECRET_KEY'] = '123456790'

app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///a_sample_database.sqlite'
app.config['SQLALCHEMY_ECHO'] = …
Run Code Online (Sandbox Code Playgroud)

python sqlalchemy flask flask-sqlalchemy flask-admin

10
推荐指数
1
解决办法
2050
查看次数

flask-admin:如何根据其他列的值使列只读?

我已经构建了一个允许用户申请代码审查并等待经理批准的系统.

现在我想要实现的目标如下:

  1. 如果它被批准, 在此输入图像描述 然后所有字段都变为只读(我手动将项目名称设置为只读):

在此输入图像描述

  1. 如果被拒绝,

    在此输入图像描述

    然后所有字段都可以编辑.当然,在创建新项目时,所有字段都应该是可编辑的.
    在此输入图像描述

    类的代码ProjectProjectView是如下:

     from flask_sqlalchemy import SQLAlchemy
     from flask_admin.contrib import sqla
     from flask_security import current_user
    
     # Create Flask application
     app = Flask(__name__)
     app.config.from_pyfile('config.py')
     db = SQLAlchemy(app)
    
     class Project(db.Model):
    
            id = db.Column(db.Integer, primary_key=True)
            project_name = db.Column(db.Unicode(128))
            version = db.Column(db.Unicode(128))
            SVN = db.Column(db.UnicodeText)
            approve = db.Column(db.Boolean())
    
            def __unicode__(self):
                return self.name
    
     class ProjectView(sqla.ModelView):
         def is_accessible(self):
             if not current_user.is_active or not current_user.is_authenticated:
                 return False
             return False …
    Run Code Online (Sandbox Code Playgroud)

python flask flask-sqlalchemy flask-admin

5
推荐指数
1
解决办法
1977
查看次数

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

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

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

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

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

在此处输入图片说明

python flask flask-sqlalchemy flask-admin

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