Скачивание файлов с сайта пользователями

Здравствуйте. Хочу реализовать функцию скачивания файлов с сайта. Есть модели, которые выводятся на сайт через цикл, на каждой форме кнопка скачки. Так же кнопка используется на других страницах. (то есть в идеале сделать так, что бы работало без привязки к странице) Первый вопрос, будет ли работать загрузка файлов, если работаю с сайтом через локальный сервер. Ну а второй, конечно же, как это сделать. В интернете видел пару способов, но у меня они не работали (может сам накосячил). В идеале реализовать на чистом 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 %}

Буду очень благодарен всем, кто хоть что-то подскажет!


Ответы (0 шт):