Web 浏览器中的图像未呈现 模板models.pyviews.py

问题描述

Web 浏览器中的图像未呈现,显示 alt 属性的消息,我不仅使用 Django 的轻量级服务器,而且图像即使在简单的静态 html 文件中也不可见,但是当它的地址粘贴到浏览器的搜索中时,它会呈现吧。

模板

<!DOCTYPE html>

{% load static %}
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta http-equiv="X-UA-Compatible" content="IE=edge">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <title>Document</title>
</head>
<body>
{% for prod in allProds %}
{{prod.name}}<br>
<img src="/media/{{prod.img}}"><br>
{{prod.img}}
{{prod.smdesc}}<br>
{{prod.bgdesc}} <br>
{% endfor %}

</body>
</html>

models.py

from django.db import models
import uuid
from django.contrib.auth.models import User

class Category(models.Model):
    category = models.CharField(max_length=50)

class SubCategory(models.Model):
    sub_category = models.CharField(max_length=50)

class Product(models.Model):
    id = models.UUIDField(primary_key=True,default=uuid.uuid4,editable=False)
    name = models.CharField(max_length=40)
    img = models.ImageField(upload_to='shop/images')
    smdesc = models.CharField(max_length=100)
    bgdesc = models.CharField(max_length=400)
    price = models.IntegerField()
    in_Stock = models.IntegerField(default=0)
    discount = models.IntegerField(default=0)
    category = models.ForeignKey(Category,on_delete=models.CASCADE)
    sub_category = models.ForeignKey(SubCategory,on_delete=models.CASCADE)
    date_added = models.DateField(auto_Now=True)

    def __str__(self):
        return f"{self.name} of {self.price}"

class Cart(models.Model):
    user = models.ForeignKey(User,on_delete=models.CASCADE)
    cart_items = models.ManyToManyField(Product,blank=True,related_name="cart_items") 

views.py

from django.shortcuts import render
from .models import Product
# Create your views here.
def index(request):
    allProds = Product.objects.all()
    context = {
        'allProds':allProds
    }
    return render(request,'ecom/index.html',context)

通知是否有任何其他错误代码完美,除了图像)或任何最佳实践

解决方法

您的图片标签应如下所示:

null

或者,如果您已经在 settings.py 和 url 中引用了 /media 路径,它甚至应该看起来像这样:

<img src="/media/{{prod.img.url}}"><br>

例如,如果媒体文件夹位于 manage.py 文件所在的同一目录中(通常是这种情况),则在 settings.py 中添加:

<img src="{{prod.img.url}}"><br>

在你的 urls.py 中是这样的:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...