Запись кликов на модальном переключателе - PullRequest
0 голосов
/ 10 июля 2020

У меня есть страница с каталогами мультимедиа (думаю, она похожа на страницу Instagram). Медиа доступны для просмотра на модальных окнах, и я хотел бы записать «количество просмотров» для каждого медиа. Таким образом, всякий раз, когда модальное окно, содержащее этот носитель, открывается, оно записывает представление.

Это упрощенная версия моего кода:

<button data-toggle="modal" data-target="media-number-999">Click to view Media 999!</button>
<div class="modal" id="media-number-999">Media #999 viewable here!</div>

У меня также есть страница, настроенная для посещения этого страница автоматически увеличивает количество просмотров на 1, а затем перенаправляет в другое место (используя django)

urls.py:
path('views/<id>/', views.media_views, name="mediaviews"),

views.py:
def media_views(request,id):
    Media.objects.filter(id=id).update(views=F('views') + 1)
    return redirect('media_detail', id=id)

Причина, по которой я делаю это, заключается в том, что я могу затем ссылаться на количество просмотров в базе данных для использования для сортировки /filtering/etc.

Как сделать кнопку, которая одновременно открывает модальное окно и записывает посещение / views / 999 /? Также открыты для альтернативных подходов, если есть способы лучше! Я пытался понять, как использовать Ajax для этого, но безуспешно.

Спасибо!

1 Ответ

1 голос
/ 10 июля 2020
  1. Добавьте функцию onclick в

    Щелкните, чтобы просмотреть Media 999!

  2. Создайте новую конечную точку в своем приложении в следующем формате: / record / {id}

  3. Создайте функцию recordview (), которая выполняет простой HTTP-запрос (AJAX) к вашей новой конечной точке

  4. Удалите Media.objects.filter(id=id).update(views=F('views') + 1) в media_views, чтобы избежать двойной записи (с момента щелчка по сравнению с открытием) или измените модель в media_views

(в начале нет /, но мне пришлось добавить его, иначе StackOverflow не отформатирует его должным образом. Обязательно удалите его (и пусть я знаю, умеете ли вы его форматировать без блин sla sh!)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...