【问题标题】:Attach an image into a Django Model将图像附加到 Django 模型中
【发布时间】:2012-10-22 21:51:14
【问题描述】:

制作一个基本的问答网站,并希望将每个问题与一张图片相关联(管理员上传),如果没有相应的图片,则将其与默认的“无图片”占位符相关联。

我有两个模型,问题和答案(见下文)。每个问题都需要有一个与之关联的图像,所以我认为最好的方法是将属性 ImageField 附加到 Question 模型中。

#models.py
class Question(models.Model):
    title = models.CharField(max_length = 500)
    picture = models.ImageField(height_field = '250',
                                width_field = '200',
                                upload_to = 'images')
    def __unicode__(self):
        return self.title

当我运行服务器时,告诉我下载 Python Imaging Library,当我收到错误时(不同的问题)。

退一步,在 Django 中将图像添加到模型的最佳方法是什么?

【问题讨论】:

  • 我认为使用ImageField 是在 Django 中将图像添加到模型的绝佳方式。如果由于某种原因无法安装 Python Imaging Library (PIL),您也可以尝试使用 FileField
  • 我相信您错误地使用了 height_field 和 width_field。它应该是一个字符串,其中包含您要放置指定值的字段的名称。所以 height_field='myheightfield'。检查here
  • 谢谢,在我尝试运行程序后发现它没有工作。

标签: python django image model


【解决方案1】:

忘记 PIL...

使用位置 URL 数据库条目。不要使用 ImageField(),而是使用

picturepath = models.CharField(255)

包含图片静态位置的 URL。

所以如果 STATIC_URL = "http://127.0.0.1/static/" 和图片路径 = "images/poots.png"

然后,在视图中传递该信息,并在模板中使用它:

<img src="{{ STATIC_URL }}{{ question.picturepath }}">

将提供

<img src="http://127.0.0.1/static/images/poots.png">

【讨论】:

    猜你喜欢
    • 2020-04-24
    • 2014-12-06
    • 2011-09-22
    • 2016-05-06
    • 2017-04-27
    • 1970-01-01
    • 2011-06-05
    • 2019-11-05
    • 2012-04-11
    相关资源
    最近更新 更多