Кнопка дополнительного действия не работает на флеш-админ - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь добавить еще одно действие в формы администратора фляги.

enter image description here

Это должно увеличить рейтинг (+1), и этоработает с пакетным действием, но не с одиночным.Пожалуйста, помогите мне найти ошибку, я потратил много времени, пытаясь заставить эту вещь работать должным образом.

Вот код:

Я сделал HTML-шаблон в папке шаблонов - custom_lists.html

{% extends 'admin/model/list.html' %}
{% block list_row_actions %}
    {{ super() }}
  <form class="icon" method="POST" action="/admin/user/action/">
    <input id="action" name="action" value="approve" type="hidden">
    <input name="rowid" value="{{ get_pk_value(row) }}" type="hidden">
    <button onclick="return confirm('Are you sure you want to approve selected items?');" title="Approve">
      <span class="fa fa-ok glyphicon glyphicon-ok"></span>
    </button>
  </form>
{% endblock %}

это успешно с иконкой в ​​списке, но если я нажимаю на него - он говорит

не найден

Запрошенный URL не былнашел на сервере.Если вы ввели URL-адрес вручную, проверьте правильность написания и повторите попытку.

добавлено в папку шаблонов и добавлено в класс AdidasView:

list_template = 'custom_list.html'
@action('approve', 'Approve', 'Are you sure you want to approve selected items?')
def action_approve(self, ids):
    try:
        query = Adidas.query.filter(Adidas.id.in_(ids))

        count = 0
        for image in query.all():
            image.rating += 1
            count += 1
            db.session.commit()
        flash(ngettext('Item was successfully approved.',
                       '%s items were successfully approved.'%count,count))
    except Exception as ex:
        if not self.handle_view_exception(ex):
            raise

        flash(gettext('Failed to approve items. %(error)s', error=str(ex)), 'error')

1 Ответ

0 голосов
/ 27 августа 2018

Я не изменил шаблон, но сделал это иначе, установив переменную column_extra_row_actions и определив функцию action_play

column_extra_row_actions = [
        EndpointLinkRowAction('glyphicon glyphicon-play', 'event.action_play')
    ]

@expose('/action/play', methods=('GET',))
def action_play(self, *args, **kwargs):
    return self.handle_action()
...