【发布时间】:2021-02-11 00:27:02
【问题描述】:
问题:
我想将我的产品文件的图片上传到服务器上。但是当我传递文件 URL 时
<{{product.photo.url}}> 在我的 HTML 文件中显示 值错误:照片属性没有与之关联的文件。
我的python和HTML文件代码如下:
product.py 文件:
from django.db import models
from django.db.models import ImageField
from .category import Category
class Product(models.Model):
name = models.CharField(max_length=500)
description = models.CharField(max_length=200, blank=True, null=True)
photo = models.ImageField(upload_to='uploads/product/',
blank=True)
category = models.ForeignKey(Category, on_delete=models.CASCADE, default=1)
manufacturer = models.CharField(max_length=300,
blank=True)
price = models.IntegerField(default=0)
@staticmethod
def get_all_products():
return Product.objects.all()
在Imagefield 的上述代码中,我传递了“照片”变量,但服务器也显示错误。
urls.py:
from django.contrib import admin
from django.urls import path, include
from django.conf.urls.static import static
from . import settings
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('store.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
Index.html代码:
<body>
<div.<div class="container-fluid">
<div class="row mx-auto">
{% for product in products %}
<div class="card mx-auto mb-3 mt-3" style="width: 18rem;">
<img src="{{product.photo.url}}" class="card-img-top" alt="...">
<div class="card-body">
<p class="card-title"><b>{{product.name}}</b></p>
<p class="card-text"><b>{{product.price}}</b>
<a href="#" class="btn btn-light border btn-md">Add To Cart</a>
</div>
</div>
{% endfor %}
</div>
</div>
令人困惑的是,当我传递代码 {{product.image.url}} 而不是 {{product.photo.url}} 时,它显示的是整体输出而不是产品图片
settings.py代码:
STATIC_URL = '/static/'
MEDIA_URL = '/test/'
MEDIA_ROOT = BASE_DIR
我认为它不是从源代码读取/获取 URL;我应该如何解决这个问题?
【问题讨论】:
-
是的,先生,非常感谢。我已经看到了您的回答,而且内容丰富。
标签: python html django pycharm