Вадим Полшков3 октября 2019 г. 10:36
Скачивание файлов
Здравствуйте.
Сделал небольшую модель для хранения прайс листа
class PriceList(models.Model): '''Модель прайс листа''' title = models.CharField(max_length=250, verbose_name='Заголовок') file = models.FileField(upload_to='price_list/%y/%m/%d/', verbose_name='Файл') count = models.PositiveIntegerField(default=0, verbose_name='Кол-во загрузок') is_active = models.BooleanField(default=True, verbose_name='Модерация') created = models.DateTimeField(auto_now_add=True, verbose_name='Создан') updated = models.DateTimeField(auto_now=True, verbose_name='Изменен') def __str__(self): return self.title class Meta: verbose_name = 'Прайс лист' verbose_name_plural = 'Прайс листы' ordering = ['-created']
Нужно чтобы загрузка файла была доступна с любой страницы сайта. Поэтому сделал через контекстный процессор.
def price_list(request): '''Прайс лист''' price = PriceList.objects.filter(is_active=True) return {'price_list': price}
Все работает хорошо, файл прайс листа добавляется с админки и скачивается с сайта.
Вопрос. Как сделать подсчет количества скачиваний файла?
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.Вам это нравится? Поделитесь в социальных сетях!
Комментарии
Только авторизованные пользователи могут публиковать комментарии.
Пожалуйста, авторизуйтесь или зарегистрируйтесь
Пожалуйста, авторизуйтесь или зарегистрируйтесь
- Дмитрий
- 7 мая 2024 г. 9:40
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:60баллов,
- Очки рейтинга-1
d
- dsfs
- 26 апреля 2024 г. 4:56
C++ - Тест 004. Указатели, Массивы и Циклы
- Результат:80баллов,
- Очки рейтинга4
Последние комментарии
Qt Linux - Урок 001. Автозапуск Qt приложения под Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
АК
Qt WinAPI - Урок 007. Работаем с ICMP Ping в Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
Анатолий Кононенко5 февраля 2024 г. 1:50
EVA25 декабря 2023 г. 10:30
Boost - статическая линковка в CMake проекте под Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
Qt/C++ - Урок 056. Подключение библиотеки Boost в Qt для компиляторов MinGW и MSVC Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
Сейчас обсуждают на форуме
добавить qlineseries в функции в функции: "GPlotter::addSeries(QString title, QVector &arr)" я вызываю метод setChart(...), я в конструктор передал адрес на QChartView элемент
BlinCT5 мая 2024 г. 5:46
Best Indian Food Restaurant In Cincinnati OH Ready to embark on a gastronomic journey like no other? Join us at App india restaurant and discover why we're renowned as the Best Indian Food Restaurant In Cincinnati OH . Whether y…
Evgenii Legotckoi2 мая 2024 г. 14:07
IscanderChe30 апреля 2024 г. 4:22
Добрый день.
Первое, что приходит на ум, так это сделать ссылку на какой-нибудь view, который будет увеличивать счётчик скачиваемого файла, и только потом переадресовывать непосрдественно на скачиваемый файл в отдельной вкладке.
Это самое просто, что можно реализовать.
можете примером кода помочь? я сделал но у меня получилось, что при обновлении страницы счетчик увеличивает значение а нужно по клику по ссылке чтоб это происходило.
и получается, что после того как сделал ссылку на эту вьюху, то это работает только сдесь http://192.168.1.5:8001/price
если перейти на любую другую страницу то ссылки вобще нет.
Добрый день. Я имел ввиду, что нужно сделать отдельную вьюшку, которая будет делать редирект.
Например, может быть такая вьюшка
А в шаблоне страницы просто добавить именно url этой вьюшки, вместо прямой ссылки на файл
Не забудьте вьюшку добавить в urls.py
Собственно говоря - это первое, что я попытался бы сделать
Здравствуйте.
Спасибо, я вас понял, сегодня чуть позже сделаю.
Здравствуйте.
Все получилось, только редирект сделал по другому redirect(price.file.url)
Спасибо вам за помощь!