Переопределите шаблон создания Flask-Admin для конкретного представления и добавьте подтверждение JavaScript в событие onSubmit
формы. Добавление подтверждения к событию отправки обрабатывает три кнопки отправки;«Сохранить», «Сохранить и добавить еще» и «Сохранить и продолжить».
Например:
class UserView(ModelView):
create_template = 'create_user.html'
# ...
В папке / templates / admin добавьте html-файл 'create_user.html':
{% extends 'admin/model/create.html' %}
{% block tail %}
{{ super() }}
<script src="{{ admin_static.url(filename='admin/js/helpers.js', v='1.0.0') }}" type="text/javascript"></script>
<script>
(function ($) {
$('form:first').on('submit', function() {
return faHelpers.safeConfirm('{{ _gettext('Are you sure you want to save this record?') }}');
});
})(jQuery);
</script>
{% endblock %}
Обратите внимание, что во Flask-Admin 1.5.3 есть ошибка , файл helpers.js отсутствует в дистрибутиве, и вам нужно будет добавить функцию safeConfirm
.
{% extends 'admin/model/create.html' %}
{% block tail %}
{{ super() }}
<script>
(function ($) {
function safeConfirm(msg) {
try {
var isconfirmed = confirm(msg);
if (isconfirmed == true) {
return true;
}
else {
return false;
}
}
catch (err) {
return false;
}
}
$('form:first').on('submit', function () {
return safeConfirm('{{ _gettext('Are you sure you want to save this record?') }}');
});
})(jQuery);
</script>
{% endblock %}