首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >管理如何在行旁边添加按钮

管理如何在行旁边添加按钮
EN

Stack Overflow用户
提问于 2019-01-26 05:46:08
回答 1查看 5.2K关注 0票数 4

我制作了一个学费支付应用程序使用和使用瓶-管理来管理付款。

烧瓶-Admin通过我在models.py上声明的SQLAlchemy自动生成表行

这是我桌子的照片:

现在,我想在每个总账单号码旁边加上一个按钮,以便结账。

我知道如何使用column_list方法添加由ModelView提供的列,如下面的代码所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
column_list = ('student_id', 'total_bill', 'Pay Now')

它会提供这样的视图显示:

现在,我希望列Pay现在就有一个按钮,用于类似于我手动使用HTML编写代码的每一行,如下所示:

每个行都有签出按钮,正如我前面提到的,这是用于签出按钮的。

那么,怎么做呢.?,任何帮助都将是非常感谢的

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-26 12:27:49

您可以使用成形者以任意方式呈现列。

烧瓶-管理行表格上的示例代码。

例如,每一行"Checkout“按钮都可以呈现为一个HTML表单,其中有一个submit按钮,而学生id则呈现为表单中的一个隐藏字段。

下面的简单示例(Python2.7)中的文件都位于根目录中。views.py包含重要的代码,其余的都是简单易懂的。

StudentView定义了一个方法_format_pay_now,如果模型的is_paid值是True,则该方法要么呈现一个字符串“付费”,要么呈现一个True表单。

StudentView还通过方法checkout_view公开路由'/admin/student/checkout',以处理提交的表单。在这个特定的实例中,is_paid列被设置为True,列表视图被重新呈现。

views.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import redirect, flash, url_for
from flask_admin import expose
from flask_admin.contrib import sqla
from flask_admin.helpers import get_form_data
from flask_admin.babel import gettext
from markupsafe import Markup


class StudentView(sqla.ModelView):

    page_size = 5

    column_list = ('id', 'cost', 'Pay Now')
    column_editable_list = ['cost']

    # override the column labels
    column_labels = {
        'id': 'Student ID',
        'cost': 'Total Bill',
    }

    def _format_pay_now(view, context, model, name):

        if model.is_paid:
            return 'Paid'

        # render a form with a submit button for student, include a hidden field for the student id
        # note how checkout_view method is exposed as a route below
        checkout_url = url_for('.checkout_view')

        _html = '''
            <form action="{checkout_url}" method="POST">
                <input id="student_id" name="student_id"  type="hidden" value="{student_id}">
                <button type='submit'>Checkout</button>
            </form
        '''.format(checkout_url=checkout_url, student_id=model.id)

        return Markup(_html)

    column_formatters = {
        'Pay Now': _format_pay_now
    }

    @expose('checkout', methods=['POST'])
    def checkout_view(self):

        return_url = self.get_url('.index_view')

        form = get_form_data()

        if not form:
            flash(gettext('Could not get form from request.'), 'error')
            return redirect(return_url)

        # Form is an ImmutableMultiDict
        student_id = form['student_id']

        # Get the model from the database
        model = self.get_one(student_id)

        if model is None:
            flash(gettext('Student not not found.'), 'error')
            return redirect(return_url)

        # process the model
        model.is_paid = True

        try:
            self.session.commit()
            flash(gettext('Student, ID: {student_id}, set as paid'.format(student_id=student_id)))
        except Exception as ex:
            if not self.handle_view_exception(ex):
                raise

            flash(gettext('Failed to set student, ID: {student_id}, as paid'.format(student_id=student_id), error=str(ex)), 'error')

        return redirect(return_url)

models.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask_sqlalchemy import SQLAlchemy


db = SQLAlchemy()


class Student(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    cost = db.Column(db.Integer(), nullable=False)
    is_paid = db.Column(db.Boolean(), nullable=False)

    def __str__(self):
        return unicode(self).encode('utf-8')

    def __unicode__(self):
        return "ID: {id}; Cost : {cost}".format(id=self.id, cost=self.cost)

commands.py

使用flask create-database生成SQLite数据库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import random
from flask.cli import click, with_appcontext
from models import db, Student


@click.command('create-database')
@with_appcontext
def create_database():

    # Create 100 students

    db.drop_all()
    db.create_all()

    for _ in range(0, 100):
        _project = Student(
            cost=random.randrange(10, 200),
            is_paid=False
        )
        db.session.add(_project)

    db.session.commit()

app.py

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from flask import Flask
from flask_admin import Admin
from models import db, Student
from commands import create_database

app = Flask(__name__)

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

# Create in-memory database
app.config['DATABASE_FILE'] = 'sample_db.sqlite'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + app.config['DATABASE_FILE']
db.init_app(app)

app.cli.add_command(create_database)


# Flask views
@app.route('/')
def index():
    return '<a href="/admin/">Click me to get to Admin!</a>'


from views import StudentView

admin = Admin(app, template_mode="bootstrap3")
admin.add_view(StudentView(Student, db.session))


if __name__ == '__main__':
    app.run()

requirements.txt

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Click==7.0
enum34==1.1.6
Flask==1.0.2
Flask-Admin==1.5.3
Flask-SQLAlchemy==2.3.2
itsdangerous==1.1.0
Jinja2==2.10
MarkupSafe==1.1.0
SQLAlchemy==1.2.17
Werkzeug==0.14.1
WTForms==2.2.1
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54378961

复制
相关文章
使用 replace-regexp 在行首添加序号
M-x replace-regexp RET ^ RET \,(1+ \#). RET
飞驰的西瓜
2022/07/26
6950
使用 replace-regexp 在行首添加序号
Typecho如何添加“编辑”当前文章按钮
这个功能一直是我想要的,我习惯写完文章发布之后,再通读一遍看看有没有错别字,如果有的话直接修改是最好不过了。来Typecho也有一个礼拜了,至今苦于这个功能的缺失。
毛大姑娘
2020/09/10
1.3K0
Typecho如何添加“编辑”当前文章按钮
QTableView 添加按钮
这里说一下怎么在QTableView添加一个按钮 效果是点击button弹出一个对话框。 看一下ButtonDelegate的代码 #ifndef BUTTONDELEGATE_H #define B
lpxxn
2018/01/31
2.5K0
QTableView 添加按钮
为 Typecho 添加 Copy 按钮
将以下代码添加到主题 header.php 中的 标签前,本主题也可以前往 控制台 - 设置外观 - 主题自定义扩展,将它添加到 自定义 HTML 元素拓展 - 标签: head 头部 (meta 元素后)。
季春二九
2023/03/22
1.6K0
如何给WordPress编辑器添加文章分页按钮?
如何给WordPress编辑器添加文章分页按钮?不知道为什么WordPress明明有文章分页功能,而编辑器却没有插入分页符的按钮,必须切换到文本模式输入<!–nextpage–>才能插入分页。
主机教程网2bcd.com
2022/11/28
1.2K0
如何给WordPress编辑器添加文章分页按钮?
fastadmin如何在列表的操作中添加其他按钮
fastadmin默认的列表操作中只有编辑和删除按钮,如果我们需要添加其他按钮,需要先找到对应的js文件。我们需要在初始化表格中添加buutons属性,原来的js代码如下:
高久峰
2023/06/03
4.3K0
如何使用 Bootstrap class 向按钮添加下拉菜单
如何使用 Bootstrap class 向按钮添加下拉菜单。如需向按钮添加下拉菜单,只需要简单地在一个 .btn-group 容器中放置按钮和下拉菜单即可。您也可以使用 <span class="caret"></span> 来指示按钮作为下拉菜单。
好派笔记
2021/09/18
5.6K0
wordpress文章内添加按钮
谷腾堡编辑器自带,提取出平时使用经典编辑器方便使用。理论高版本的wordpress都可以用吧。字体颜色也可以更改,用到了再去谷腾堡拿吧!
AlexTao
2019/12/12
9780
为wordpress添加google+按钮
作者:matrix 被围观: 1,093 次 发布时间:2013-09-10 分类:Wordpress 兼容并蓄 | 无评论 »
HHTjim 部落格
2022/09/26
5190
为wordpress添加google+按钮
Cocos Creator之添加按钮
Button 组件可以响应用户的点击操作,当用户点击 Button 时,Button 自身会有状态变化。另外,Button 还可以让用户在完成点击操作后响应一个自定义的行为。
李小白是一只喵
2021/04/26
2.1K0
Cocos Creator之添加按钮
PageAdmin如何添加和管理站点
PageAdmin Cms支持多站点,可以在站点管理对每个站点进行管理,站点绑定域名,访问目录,站点模板等操作都在此界面进行操作,
用户5258701
2019/04/26
1.1K0
小白前端入门笔记(21),表单里如何添加单选按钮?
大家好,欢迎来到freecodecamp HTML专题第21篇,我们今天来聊聊单选按钮的使用。
TechFlow-承志
2021/04/16
1.8K0
小白前端入门笔记(21),表单里如何添加单选按钮?
给 WordPress 博客添加 Google Buzz 按钮
Google Buzz 是 Google 推出的整合在 Gmail 中分享个人状态信息和其他动态的工具,只要是 Gmail 用户,就可以在 Buzz 中通过空开或者私密的方式来分享文字,图片,视频等信息,在移动设备中,还可以通过 Buzz 向好友分享地理位置,并且 Google Buzz 还可以直接导入个人的 Twitter,Picasa,Google Reader,博客等各种内容。 由于 Google Buzz 整合到 Gmail 中,所以这个服务一开始,就有非常多的用户,那么如何让博客读者把你的博客中的日志分享到 Google Buzz 中,让你的博客日志在更多的用户分享和传播呢?今天我就讲解下如何添加 Google Buzz 按钮到 WordPress 博客当中。
Denis
2023/04/14
8860
给 WordPress 博客添加 Google Buzz 按钮
Next -18- 添加代码复制按钮
本文介绍Next 7.7.1 主题添加代码复制按钮的方法。 修改主题配置文件 配置copy_button字段: # Add copy button on codeblock copy_button: enable: true # Show text copy result. show_result: default # Available values: default | flat | mac style: 设置 enable 为 true,show_result为defa
为为为什么
2022/08/04
1.2K0
Next -18- 添加代码复制按钮
Android Drawable 如何添加一个自定义的按钮状态
增加状态的过程如下: >定义状态数组 >重写protected int[] onCreateDrawableState(int extraSpace) >调用refreshDrawableStat
用户3004328
2018/09/06
1.9K0
管理容器和混合IT:云初创企业更在行
随着容器、开源和混合云逐渐成为主流,对管理这些技术工具的需求量也变得很大。一些新的公司应运而生。 十年前,即使是最狂热的云技术拥护者也无法预料到它如此快速的崛起,以及随之而来的IT服务的多样性。今天,这一势头还在继续,每周都会出现新的云计算创业公司。 三位分析师——位于马萨诸塞州米尔福德的企业战略集团的Dan Conde,加利福尼亚州Cupertino的Constellation Research公司的Holger Mueller和波士顿451 Research的William Fellows都表示,在20
静一
2018/03/27
7240
管理容器和混合IT:云初创企业更在行
上海疫情:『量化』私募管理人在行动!
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据等领域的主流自媒体。公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业30W+关注者,荣获2021年度AMMA优秀品牌力、优秀洞察力大奖,连续2年被腾讯云+社区评选为“年度最佳作者”。 量化投资与机器学习公众号独家报道 量化投资与机器学习公众号紧跟行业步伐,在最近上海爆发疫情的特殊时刻,各大在沪的量化私募管理人都在做着各种行动,尽最大可能保障每个员工的生活,还是很感动的! 不管是柴米油盐,还是
量化投资与机器学习微信公众号
2022/04/06
6950
上海疫情:『量化』私募管理人在行动!
jQuery实现动态添加和删除(点击按钮添加在页面添加和删除元素)
1:点击添加按钮弹出弹框,form表单可以填写相关的信息 2:点击保存按钮,相关信息会显示在界面的列表里
王小婷
2019/02/26
7.4K0
iOS - 添加一个全局悬浮按钮
背景介绍 :在普通的iOS开发组中,一般测试机都不止一台,但是我们在开发的时候,不可能每台测试机时刻保持最新的代码,这就出现了一个问题,当测试测出问题的时候,(或者产品突然拿去点点看的时候出了问题)如
小蠢驴打代码
2018/05/24
2.8K0
点击加载更多

相似问题

是否在行的按钮旁边添加UIView?

11

在行前添加+按钮

20

如何在图像旁边添加按钮

10

如何在文本旁边添加按钮?

22

如何在按钮旁边添加图像

22
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文