首页 > 解决方案 > 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;我应该如何解决这个问题?

标签: pythonhtmldjangopycharm

解决方案


您的文件和代码有点混乱,但这是我的想法。

错误

ValueError at /“照片”

很清楚。photo没有与之关联的文件/属性。我也不确定你期望它{{product.photo.url}输出什么——据我所见,这不会产生任何价值。如果您认为product引用文件并photo引用定义的属性并且urlphoto 对象的间接变量,那么这是一种错误的方法。

请在此处查看此答案,了解您应该如何在src标签中嵌入 URL -如何在 img src 标签中添加 django 模板变量


推荐阅读