python - ValueError at / 'photo' 属性没有与之关联的文件
问题描述
问题 :
我想将我的产品文件的图像上传到服务器上。但是,当我传递
<{{product.photo.url}}>
HTML 文件中的文件 URL 时,它会显示值错误:照片属性没有与之关联的文件。
我的python和HTML文件代码如下:
产品.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;我应该如何解决这个问题?
解决方案
您的文件和代码有点混乱,但这是我的想法。
错误
ValueError at /“照片”
很清楚。photo
没有与之关联的文件/属性。我也不确定你期望它{{product.photo.url}
输出什么——据我所见,这不会产生任何价值。如果您认为product
引用文件并photo
引用定义的属性并且url
是photo
对象的间接变量,那么这是一种错误的方法。
请在此处查看此答案,了解您应该如何在src
标签中嵌入 URL -如何在 img src 标签中添加 django 模板变量
推荐阅读
- java - 未找到 SMTP 电子邮件文件异常
- javascript - 如何强制客户端重新下载我的网站?
- c# - 在 Windows 中执行 lsnrctl 命令的程序?
- mysql - SQL Fiddle Complex Join 没有显示
- python - 多维numpy数组的条件切片
- php - 将变量从 while mysqli_fetch_array 循环传递到另一个页面时遇到问题,因此我可以将它与另一侧的 $_GET 一起使用
- python - 如何在 Python 中求解符号方程组?
- yocto - 如何在 yocto 配方中禁用警告错误标志
- git - GIT 状态显示没有 midification,但 VSTS 构建失败并出现更新远程错误
- r - 提取运算符 `$`() 在函数内返回零长度向量