@Doomplex

Как правильно создать поле в модели в Django для подсчета количества переходов по ссылке?

Суть приложения:
В тексте статьи будет относительная кастомная ссылка, вида /links/yandex, которая будет редиректить на заданный адрес, например, https://ya.ru, в админке хочу реализовать счетчик количества переходов по каждой ссылки отдельно.

Создал модель:

class Link(models.Model):
    title = models.CharField(
        max_length=200,
        verbose_name="Название",
        help_text='Укажите название для ссылки'
    )
    link_from = models.SlugField(
        unique=True,
        max_length=200,
        verbose_name="Ссылка, которая указана на сайте",
        help_text='Укажите с какой ссылки нужно перенапривать пользователя'
    )
    link_to = models.CharField(
        unique=True,
        max_length=200,
        verbose_name="Ссылка, по которой надо отправить",
        help_text='Укажите ссылку куда направить пользователя'
    )
    created_on = models.DateTimeField(
        auto_now_add=True
    )
    updated_on = models.DateTimeField(
        auto_now=True
    )


Функция:
def custom_redirect(request, link_from):
    link_to = Link.objects.get(link_from=link_from).link_to
    return redirect(link_to)


Подскажите, как задать поле counter в модели, чтобы он показывал количество переходов по каждой ссылке?
  • Вопрос задан
  • 211 просмотров
Решения вопроса 1
@Doomplex Автор вопроса
Спасибо Dr. Bacon, за решение

def custom_redirect(request, link_from):
    link = Link.objects.get(link_from=link_from)
    link.counter = F('counter') + 1
    link.save(update_fields=['counter'])
    return redirect(link.link_to)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы