【问题标题】:Default Image for ImageFieldImageField 的默认图像
【发布时间】:2021-05-26 23:20:31
【问题描述】:

您好,我正在尝试为 Django 中的待办事项列表设置默认图像。我在 static/images 下有一张图片。 现在我正在尝试添加一个可以添加任务的功能。在这个功能中,我可以选择一个图像。如果未选择任何图像,则该图像将成为默认图像 ex。占位符.png

我尝试在 models.py 中创建一个 if else 循环,但这也不起作用。显示所选图像确实有效。

models.py:

class Product(models.Model):
    name = models.CharField(max_length=200, null=True)
    price = models.FloatField()
    description = models.CharField(max_length=255, null=True)
    image = models.ImageField(null=True, blank=True)
    technologie = models.CharField(max_length=255, null=True)

    def __str__(self):
        return self.name

    @property
    def imageURL(self):
        if self.image:
            return self.image.url
        else:
            return "static/images/Placeholder.png"

现在我的问题是如何将静态目录中的 Placeholder.png 设置为 ImageField 的默认值?

【问题讨论】:

  • 应该有一个前导斜杠"/static/images/Placeholder.png"(或者它是当前路径的相对路径)或者更好,使用模板标签static("images/Placeholder.png")。这样,如果您更改了 STATIC_URL 设置,它仍然可以工作。另外,不要忘记manage.py collectstatic,因为默认图片是静态资源,而上传的是媒体。
  • 谢谢,我会试试那个解决方案!
  • @schwobaseggl 感谢领先的斜线工作!也许您想发表您的评论作为答案?

标签: python django django-models static


【解决方案1】:

你可以试试这个,因为这对我来说很好,希望它对你也有帮助:)

image = models.ImageField(upload_to='images',default="images/Placeholder.png")

【讨论】:

  • 谢谢,我会试试那个解决方案!
  • 不幸的是,这对我不起作用,但我能够解决我的问题!
猜你喜欢
  • 2010-11-19
  • 2023-03-19
  • 2014-09-01
  • 2015-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 2012-11-19
相关资源
最近更新 更多