MCPcopy
hub / github.com/coleifer/sqlite-web / table_delete

Function table_delete

sqlite_web/sqlite_web.py:1066–1103  ·  view source on GitHub ↗
(table, pk)

Source from the content-addressed store, hash-verified

1064@app.route('/<table>/delete/<b64:pk>/', methods=['GET', 'POST'])
1065@require_table
1066def table_delete(table, pk):
1067 dataset = get_dataset()
1068 dataset.update_cache(table)
1069 model = dataset[table].model_class
1070 table_pk = model._meta.primary_key
1071 if not table_pk:
1072 flash('Table must have a primary key to perform delete.', 'danger')
1073 return redirect(url_for('table_content', table=table))
1074 elif pk == '__uneditable__':
1075 flash('Could not encode primary key to perform delete.', 'danger')
1076 return redirect(url_for('table_content', table=table))
1077
1078 expr = decode_pk(model, pk)
1079 try:
1080 row = model.select().where(expr).dicts().get()
1081 except model.DoesNotExist:
1082 pk_repr = pk_display(table_pk, pk)
1083 flash('Could not fetch row with primary-key %s.' % str(pk_repr), 'danger')
1084 return redirect(url_for('table_content', table=table))
1085
1086 if request.method == 'POST':
1087 try:
1088 with dataset.transaction() as txn:
1089 n = model.delete().where(expr).execute()
1090 except Exception as exc:
1091 flash('Delete failed: %s' % exc, 'danger')
1092 app.logger.exception('Error attempting to delete row from %s.', table)
1093 else:
1094 flash('Successfully deleted %s record.' % n, 'success')
1095 return redirect_to_previous(table)
1096
1097 return render_template(
1098 'table_delete.html',
1099 model=model,
1100 pk=pk,
1101 row=row,
1102 table=table,
1103 table_pk=table_pk)
1104
1105@app.route('/<table>/query/', methods=['GET', 'POST'])
1106@require_table

Callers

nothing calls this directly

Calls 4

get_datasetFunction · 0.85
decode_pkFunction · 0.85
pk_displayFunction · 0.85
redirect_to_previousFunction · 0.85

Tested by

no test coverage detected