【问题标题】:ValueError at / The 'photo' attribute has no file associated with itValueError at / 'photo' 属性没有与之关联的文件
【发布时间】: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


【解决方案1】:

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

错误

ValueError at /“照片”

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

请在此处查看此答案,了解如何在 src 标记中嵌入 URL - How to add django template variable in img src tag

【讨论】:

    猜你喜欢
    • 2020-03-08
    • 2020-01-16
    • 2023-02-21
    • 2020-08-11
    • 1970-01-01
    • 2016-02-06
    • 2019-02-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多