目前正在开发一个小型的Django电子商务项目,并遇到一个小问题。作为参考,我使用免费在线提供的Django书籍Tango。Django - 图像显示不正确
我在我的模型中设置了一个ImageField,以便为Product的模型指定产品的图像。我还有一个名为Category的模型,它使用ForeignKey引用到产品模型。
图像上传到模型中的/ static/products_img文件夹,但是当图像显示在我的模板中时,图像链接到/ static/static/products_img文件夹。但是,当我删除模型中的/静态图像,然后通过管理界面上传图像时,会将其上载到/ products_img而不是静态文件夹,当然它显示正常。但是......它变得更加怪异,当我删除新创建的目录并将图像放置在静态文件夹中的/ product_img文件夹中时,它仍然显示!
我很困惑。
models.py
class Product(models.Model):
...
image = models.ImageField(upload_to='static/products_img', blank=True)
template.html
<a href="{{ product.slug }}"><img src="{{ STATIC_URL }}{{ product.image }}" alt="{{ product.name }}" /></a>
settings.py
...
SETTINGS_DIR = os.path.dirname(__file__)
PROJECT_PATH = os.path.join(SETTINGS_DIR, os.pardir)
PROJECT_PATH = os.path.abspath(PROJECT_PATH)
...
STATIC_PATH = os.path.join(PROJECT_PATH,'static')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
STATIC_PATH,
)
映射似乎与您发布的内容一起工作,但是,替换模板部分会产生此错误:''图像'属性没有与之关联的文件。'我尝试搜索此错误但无济于事。 – user2942863
对它进行排序,必须在模板中添加“{{MEDIA_URL}}”。谢谢!似乎我在压力中忽略了一些东西。 – user2942863