gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 02:58:19 25 4
gpt4 key购买 nike

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

这是新字段:

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

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

我会说 Harvard.logo = ?

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

最佳答案

ImageField类型的地址以MEDIA_ROOT路径开始,然后是upload_to参数中确定的目录,在db上的保存路径也类似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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com