Скачивание файлов с сайта пользователями
Здравствуйте. Хочу реализовать функцию скачивания файлов с сайта. Есть модели, которые выводятся на сайт через цикл, на каждой форме кнопка скачки. Так же кнопка используется на других страницах. (то есть в идеале сделать так, что бы работало без привязки к странице) Первый вопрос, будет ли работать загрузка файлов, если работаю с сайтом через локальный сервер. Ну а второй, конечно же, как это сделать. В интернете видел пару способов, но у меня они не работали (может сам накосячил). В идеале реализовать на чистом django, без js. Сам файл загружается на сайт через модель и соответствующее поле:
models.py
file = models.FileField(upload_to=directory_path, null=True, blank=True)
Загружаются они каждый в свою папку вместе с изображениями за счёт:
def directory_path(instance, filename):
return ('rigs/{}/{}').format(instance.title, filename)
Выводятся статьи на страницу следующим образом:
views.py:
class ShowRigView(ListView):
model = Rig
template_name = 'rigs/rigs.html'
context_object_name = 'rig'
ordering = ['-date']
paginate_by = 15
def get_context_data(self, **kwards):
ctx = super(ShowRigView, self).get_context_data(**kwards)
ctx['title'] = 'MCStore Rigs'
return ctx
urls.py:
path('', views.ShowRigView.as_view(), name='rigs'),
через шаблон:
{% for post in rig %}
<div class="col-xs-1 col-md-6 col-lg-4">
<div class="card">
<div class="card-img-top"><a href="{% url 'rig_detail' post.id %}"><img src="{{ post.image_0.url }}"></a></div>
<div class="card-body">
<span>{{ post.title }}</span>
</div>
<div class="card-footer">
<div class="card-footer-1 float-left">
{% if post.price > 0 %}
<p class="mx-auto font-weight-bold font-italic">${{ post.price }}</p>
{% else %}
<p class="mx-auto font-weight-bold font-italic">Бесплатно</p>
{% endif %}
</div>
<div class="float-right">
{% if post.price > 0 %}
<a href="#" class="btn btn-success float-right align-middle ml-1 mr-2 shadow-sm"><img src="{% static 'image/shopping-cart.png' %}" width="20px" height="20px"></a>
<a href="#" class="btn btn-warning float-left align-middle ml-1 mr-1 shadow-sm">Купить</a>
{% else %}
<a href="{{ тут должна быть ссылка на загрузку }}" class="btn btn-info float-right align-middle mr-2 shadow-sm">Скачать</a>
{% endif %}
</div>
</div>
</div>
</div>
{% endfor %}
Буду очень благодарен всем, кто хоть что-то подскажет!