Django未找到:/媒体/,获取/媒体/ HTTP/1.1”404 2679

6ioyuze2  于 2023-03-20  发布在  Go
关注(0)|答案(2)|浏览(221)

我目前正在建立一个项目,我必须使用媒体。因为我已经使用媒体之前,我复制粘贴一切从我的其他项目,虽然原来的工作,我目前的项目是没有。我可以上传并选择通过管理页面,但它不会显示在html中的照片
我的观点:

def index(request):

    dergi = Dergi.objects.all()
    kitap = Kitap.objects.all()
    yazar = Yazar.objects.all()
    siir = Siir.objects.all()

    template = loader.get_template("index.html")
    context={
        "DERGI":dergi,
        "KITAP":kitap,
        "YAZAR":yazar,
        "SIIR":siir,
    }
    return HttpResponse(template.render(context, request))

我的模特:

class Kitap(models.Model):
    isim = models.CharField(max_length=255)
    yazar = models.CharField(max_length=255)
    foto = models.ImageField(upload_to="foto", null=True)

我的网址:

urlpatterns = [
path('admin/', admin.site.urls),
path("", include("index.urls"))
]

if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

设置:

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

还有我的html:

<img src="/media/{{ KITAP.foto }}" alt="" class="rounded-t-lg">
<img src="/media/{{ KITAP.foto.url }}" alt="" class="rounded-t-lg">
<img src="{{ KITAP.foto.url }}" alt="" class="rounded-t-lg">

我已经尝试了所有,但它只是给我错误:获取/媒体/ HTTP/1.1”404 2679或:页面未找到:/foto/

9udxz4iz

9udxz4iz1#

根据您的索引视图函数,KITAP是一个查询集,而不是单个查询。在模板中尝试循环或使用**Kitap.objects.get(pk=some_value)方法或类似KITAP[0]get_object_or_404(id=some_value)**的方法从视图发送单个对象。
模板中的For循环将如下所示:

{% for obj in KITAP %}
    <img src="{{ obj.foto.url }}" alt="" class="rounded-t-lg">
{% endfor %}
v1l68za4

v1l68za42#

由于您使用.all()方法发送Kitap模型的所有示例,因此您应该迭代所有示例,如下所示:

{% for ki in KITAP %}
    <img src="{{ ki.foto.url }}" alt="" class="rounded-t-lg">
{% endfor %}

相关问题