Загрузка файлов не работает в Django 2.2 - PullRequest
0 голосов
/ 14 июня 2019

я использую django 2.2 с python 3 У меня есть функция загрузки и функция загрузки в моделях, ссылка не работает, отсутствует что-то

функция загрузки

def download_product(request,slug,filename):
    product = Product.objects.get(slug=slug)
    if product in request.user.profile.ebooks.all():
        product_file = str(product.download)
        filepath = os.path.join(settings.PROTECTED_UPLOADS,product_file)
        wrapper = FileWrapper(open(filepath,'rb'))
        response = HttpResponse(wrapper,content_type=guess_type(product_file))
        response['Content-Diposition'] = 'attachment;filename=%s' %filename
        response['Content-Type'] = ''
        response['X-SendFile'] = filepath
        return response
    else:
        raise Http404

models.py

class Product(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL,on_delete=models.CASCADE,null=True,blank=True)
    name = models.CharField(max_length=120)
    description = models.CharField(max_length=500,null=True,blank=True)
    download = models.FileField(upload_to=download_loc,storage=FileSystemStorage(location=protected_loc),null=True,blank=True)
    price = models.DecimalField(max_digits=60,decimal_places=2)
    sale_price = models.DecimalField(max_digits=60,decimal_places=2,null=True,blank=True)
    slug= models.SlugField()

    def __str__(self):
        return self.name

шаблон

{% for object in object_list %}
        <div class="col-sm-3">
            <p>{{ object.name }}</p>
            <p>Price: ${{ object.price }}</p>
            {% if object in user.profile.ebooks.all %}
            {% if object.download %}
            <p><a href='{{ object.download.url }}'>Download</a></p>
            {% endif %}
            <!-- add a button here to see the product -->
            You own this
            {% elif object in current_order_products %}
            <a href="{% url 'shopping_cart:order_summary' %}" class="btn btn-warning">Go to Cart</a>
            {% else %}
            <a href="{% url 'shopping_cart:add_to_cart' object.id %}" class="btn btn-warning">Add to Cart</a>
            {% endif %}
        </div>
    {% endfor %}

Таким образом, все файлы продуктов загружаются в защищенную папку, когда я добавляю продукт, но когда начинается загрузка, сначала ссылка указывает на папку мультимедиа вместозащищенная папка думала, что они находятся в одном каталоге.поэтому нажатие на кнопку загрузки дает 404 страницу не найденной

work \ static_cdn \ media \ work \ django.jpg "не существует

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...