【发布时间】:2020-09-22 12:11:32
【问题描述】:
我有一个模板可以渲染每个产品的图片。 但结果 - 它的 URL 在路径中有额外的“静态”
这样 - 127.0.0.1:8000/static/static/photos/product1.png。
应该只是 127.0.0.1:8000/static/photos/product1.png
有什么方法可以正确地做到吗?
model.py 将其保存到“静态/照片”
class Product(models.Model):
title = models.CharField(max_length=20)
photo = models.ImageField(upload_to='static/photos', default='http://placehold.it/700x400')
views.py
from django.shortcuts import render
# Create your views here.
from .models import Category, Product
def product_list(request):
queryset = Product.objects.all()
context = {"object_list": queryset}
return render(request, "product_list.html", context)
template.html 正在关注
{% load static %}
{% for instance in object_list %}
<p><img src="{% static instance.photo %}" /></p>
{% endfor %}
【问题讨论】:
-
上传的文件与静态文件无关,您需要使用
MEDIA_ROOT和MEDIA_URL,因为静态文件用于样式表或 JavaScript 之类的东西。 -
但是如果我需要在我的模板中使用上传的图片怎么办?有什么方法可以渲染它而不将其存储在静态中?
标签: django static django-templates