Добавить 1 к записи базы данных, нажав на ссылку HTML - PullRequest
0 голосов
/ 10 ноября 2019

Я хочу отследить, сколько кликов получает каждая ссылка, и хочу, чтобы это было сохранено в базе данных здесь под моделью курсов:

https://github.com/justdjango/video-membership/blob/master/courses/models.py

Строка 9 конкретно (будет проходить по циклунесколько ссылок) - это ссылка, для которой я хотел бы отследить количество кликов:

https://github.com/justdjango/video-membership/blob/master/courses/templates/courses/course_list.html

Каждый раз, когда из этого цикла нажимается ссылка на заголовок курса или если из-за определенного слагаемого курсаДоступ к странице course_detail.html (например, - / courses / course_slug) после нажатия этой ссылки добавляет 1 к записи с именем page_views.

Я добавил эту строку в models.py Класс курса:

visit_times = models.IntegerField (по умолчанию = 0)

И я добавил 'посещения_ времени' в переменные admin.py list_display и fieldsets.

Вот код, но я не уверен, что он правильныйили как это реализовать:

def get(*args, **kwargs) :
    response = super().get(*args, **kwargs)
    self.object.visited_times += 1  # this doesn't avoid race condition, but it's good enough for the sake of example
    self.object.save
    return response

MyModel.objects.filter(pk=self.object.pk).update(visited_times=F('visited_times') + 1)
...