单击时生成编辑链接

2024-10-16 20:39:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试生成一个指向更新/编辑链接的链接,以编辑联系人详细信息。 它不会工作,当我得到一个“链接没有找到”的错误点击一行。 这是我试图在单击时启动的行链接代码:

<tr class="row100 body clickable" href="{{ url_for('main.update_noc', row_id=data.row_id) }}">

我有一段python代码,它从sqlite3获取数据,如下所示:

def get_noc(row_id):
data = get_db().execute(
    'SELECT p.id, contact, company, p.email, phone, datacenter,row_id'
    ' FROM noc p JOIN users u ON p.row_id',
).fetchone()

if data is None:
    abort (404, "Data does not exist!". format(row_id))

return data

update函数如下所示:

@bp.route('/noc/<int:row_id>/update', methods=('GET', 'POST'))
@login_required
def update_noc(row_id):
    data = get_noc(row_id)

    if request.method == 'POST':
        contact = request.form['contact']
        company = request.form['company']
        email = request.form['email']
        phone = request.form['phone']
        datacenter = request.form['datacenter']
        error = None

        if company is None:
            error = 'Company is required.'
        elif contact is None:
            error = 'Contact is required.'
        elif phone is None:
            error = 'Phone number is required.'
        elif email is None:
            error = 'Email is required.'

        if error is not None:
            flash(error)
        else:
            db = get_db()
            db.execute(
                'UPDATE noc SET contact = ?, company = ?, email = ?, phone = ?, datacenter = ?, row_id = ?'
                ' WHERE id = ?',
                (contact, company, email, phone, datacenter, row_id)
            )
            db.commit()
            return redirect (url_for('main.noc'))
    return render_template('main/update_noc.html',data=data)

我通过了烧瓶教程从文件和使用的知识,我得到了那里。它仍然不会工作,但当我手动转到/noc/1/update页面正常工作

我试着改变变量,玩了很多sql,但没有成功。。。 我怀疑我的jinja2代码有问题。。。或者在return render_template('main/update_noc.html',data=data)

这是启动我的应用程序的此pasrt的sql表:

CREATE TABLE noc (
id INTEGER PRIMARY KEY AUTOINCREMENT,
contact TEXT NOT NULL,
company TEXT NOT NULL,
email TEXT NOT NULL,
phone INTEGER NOT NULL,
datacenter TEXT NOT NULL,
row_id INTEGER NOT NULL,
FOREIGN KEY (row_id) REFERENCES noc (id)
);

非常感谢您的帮助!提前谢谢


Tags: noneiddataisemailrequestnotcontact
1条回答
网友
1楼 · 发布于 2024-10-16 20:39:14

我通过更改javascript代码修复了此问题,该代码使行可以从以下位置单击:

    jQuery(document).ready(function($) {
    $(".clickable").click(function() {
        window.location = $(this).data("href");
    });
});

收件人:

jQuery(document).ready(function ($) {
            $('[data-href]').click(function () {
                window.location = $(this).data("href");
            })
        });

因此,我将jinja2代码更改为:

<tr class="row100 body" data-href="{{ url_for('main.update_noc', row_id=data.row_id) }}">

javascript停止使用类并直接使用data href

现在这个很好用

谢谢你的真知灼见

相关问题 更多 >