мой первый django проект и images_url не загружают все, что все работает отлично, но изображения не загружаются - PullRequest
1 голос
/ 30 марта 2020

я делаю, как демонстрационный сайт, который продает фрукты, я следую учебному пособию по YouTube (код с mo sh), его изображения загружены правильно, но мои изображения не будут такими, как кнопка «Добавить в корзину» и название продукта, загруженное правильно. Я очень новичок в программировании, поэтому, пожалуйста, постарайтесь не использовать сложные термины программирования для ответа и спасибо всем, кто попытается мне помочь.

admin.py

from django.contrib import admin
from .models import Product, Offer

class OfferAdmin(admin.ModelAdmin):
    list_display = ('code', 'discount')

class ProductAdmin(admin.ModelAdmin):
    list_display = ('name', 'price', 'stock')

admin.site.register(Product, ProductAdmin)
admin.site.register(Offer, OfferAdmin)

apps.py

from django.apps import AppConfig

class ProductsConfig(AppConfig):
    name = 'products'

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()

urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index),
    path('new', views.new)
    ]

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('New products')

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 src="..." class="{{ product.image_url}}" alt="...">
                <div class="card-body">
                    <h5 class="card-title">{{ product.name }}</h5>
                    <p class="card-text">{{ product.price }}₹</p>
                    <a href="#" class="btn btn-primary">Add to cart</a>
                </div>
            </div>
        </div>
        {% endfor %}
    </div>
{% endblock %}

1 Ответ

1 голос
/ 30 марта 2020

Эта строка является вашей проблемой:

<img src="..." class="{{ product.image_url}}" alt="...">

Класс - это атрибут, который задает одно или несколько имен классов для элемента HTML, который в этом случае будет элементом img. Имя класса может использоваться CSS и JavaScript для выполнения определенных задач для элементов с указанным именем класса. Поэтому в этом случае значение класса не должно быть значением Dynami c, поскольку атрибут класса не используется для отображения информации.

Атрибут sr c используется для указания URL-адреса источника. изображение

<img src="{{ product.image_url}}" alt="...">
...