python - 使用 python shell,如何将图像与类中的 ImageField 关联起来 (Django)

标签 python django python-2.7 model python-imaging-library

好的,我在名为 College 的模型中添加了一个字段。

这是新字段:

logo = models.ImageField(upload_to="logos", default="static/images.default.png")

所以我的媒体文件夹中有一些图像,但如何将它们与类中的某些图像关联起来。

我会说Harvard.logo = 吗?

会吗?是图像路径。图像路径到底是什么?使用枕头。

最佳答案

ImageField类型的地址以MEDIA_ROOT路径开始,然后是在upload_to参数中确定的目录,也在数据库保存路径上类似upload_to_dir/file_name.ext 格式。 您的 default 参数必须以 uploat_to 值开头,更改如下:

logo = models.ImageField(upload_to="logos", default="logos/images.default.png")

要选择与college值相关的图像,您可以覆盖模型的save方法:

class MyModel(models.Model):
    logo = models.ImageField(upload_to="logos", default="logos/images.default.png", blank=None)
    college = models.IntegerField(choices=[(1, 'Harvard'), (2, 'MIT'), (3, 'Oxford')])

    def save(self, *args, **kwargs):
        if self.logo is None:
            if self.college == 1:
                self.logo = 'logos/Harvard.png'
            if self.college == 2:
                self.logo = 'logos/MIT.png'
            if self.college == 3:
                self.logo = 'logos/Oxford.png'

        super(MyModel, self).save(*args, **kwargs)

注意:这些默认图像必须已存在于 logos 目录中或复制到此目录。

关于python - 使用 python shell,如何将图像与类中的 ImageField 关联起来 (Django),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41710527/

相关文章:

python - 我如何将 NaNs 归因为 means() 但通过多索引

python - 如何将系列列表传递给 Pandas DataFrame?

python - O_NONBLOCK 不会在 Python 中引发异常

javascript - 如何从灯箱画廊内触发无限滚动 - Django/FancyBox/Waypoints.js

django - (fields.E300) 字段定义与模型的关系,该模型要么未安装,要么是抽象的

python - Python 2.7.18 有哪些新变化?

python - 构建正则表达式以匹配 Python 中多个匹配项中的第一个匹配项

python - Sqlalchemy 与联合继承和 Firebird 一起存在

python - Django 中的属性缓存 - 有什么意义?

python - Django:如何将用户提交的文件直接上传到另一台服务器?