Django -不显示图片(作为url)

zhte4eai  于 2023-06-25  发布在  Go
关注(0)|答案(2)|浏览(127)

我按照ytb的视频,一步一步,一切正常,除了图像。我通过django admin上传了链接地址,但它们没有显示。
models.py:

from django.db import models

class Product(models.Model):
    name = models.CharField(max_length=255)
    price = models.FloatField()
    stock = models.IntegerField()
    image_url = models.CharField(max_length=2083)

class Offer (models.Model):
    code = models.CharField(max_length=10)
    description = models.CharField(max_length=255)
    discount = models.FloatField()

index.html:

{% extends 'base.html' %}

{% block content%}
<h1>Products</h1>
<div class="row">
    {% for product in products %}
    <div class="col">
        <div class="card" style="width: 18rem;">
            <img class="card-img-top" src="{{ product.image_url}}" alt="Card image cap">
            <div class="card-body">
                <h5 class="card-title">{{ product.name }}</h5>
                <p class="card-text">{{ product.price }} RON</p>
                <a href="#" class="btn btn-primary">Adauga in cosul tau</a>
            </div>
        </div>
    </div>
    {% endfor %}

</div>
{% endblock %}

views.py:

from django.http import HttpResponse
from django.shortcuts import render
from .models import Product

def index(request):
    products = Product.objects.all()
    return render(request, 'index.html', {'products': products})

def new(request):
    return HttpResponse('Produse noi')

代码与视频中相同。我试着问chat gpt是否有什么不对劲的地方,但他什么也没发现。我尝试将名称从“image_url”更改为其他任何名称,但不起作用,正如预期的那样。

af7jpaap

af7jpaap1#

我觉得这会起作用,这就是我改变的:添加

  • 在整个代码中添加了更多的描述性注解。
  • products instead of Product.objects.all()
  • 为了更好地表示产品,在“Product”模型中定义了“str”方法。
  • 原始的“image_url”字段已被替换为“ImageField”类型的“image”字段。
  • 导入必要的模块 *
from django.db import models
from django.shortcuts import render
  • 定义产品型号 *
class Product(models.Model):
    name = models.CharField(max_length=255)  # Adding a field for the product name
    price = models.FloatField()  # Adding a field for the product price
    stock = models.IntegerField()  # Adding a field for the product stock
    image = models.ImageField(upload_to='product_images')
  • 为产品图片添加字段 *
def __str__(self):
    return self.name  # Returning the name of the product as its string representation
  • 定义索引视图 *
def index(request):
  • 从数据库中提取所有产品 *
products = Product.objects.all()

    *Rendering the index.html template with the list of products*
    return render(request, 'index.html', {'products': products})
lqfhib0f

lqfhib0f2#

我认为你的代码需要“/”befor {{product.image_url}}

相关问题