gpt4 book ai didi

python - 使用 django-filer,我可以选择图像进入的文件夹,从 'Unsorted Uploads'

转载 作者:太空狗 更新时间:2023-10-30 00:13:28 24 4
gpt4 key购买 nike

我是第一次使用 django-filer,它看起来很棒,而且运行良好。

但是我所有的图片都被上传到“未分类上传”文件夹中,我想不出将它们放在特定文件夹中的方法。这让我觉得这是一项基本功能,鉴于它允许您创建文件夹,这必须是可能的,对吧?但是我在文档中找不到它,快速浏览源代码也没有帮助我。

我有一个基本设置,例如:

class Story(models.Model):
image = FilerImageField()

class Gift(models.Model):
# some stuff

class GiftImage(models.Model):
gift = models.ForeignKey(Gift)
image = FilerImageField()

我希望将 GiftImage.image 和 Story.image 放入单独的文件夹中,以便管理员用户更轻松地进行排序/搜索。

我试过了

image = FilerImageField(upload_to='somewhere') # How a django ImageField would do it
image = FilerImageField(folder='somewhere') # a guess
image = FilerImageField(name='somewhere') # a guess
image = FilerImageField(folder_name='somewhere') # another guess

所有这些要么给我一个“TypeError:init() 得到了一个意外的关键字参数......”,要么就是不做我希望的事情。

干杯!

最佳答案

以防其他人遇到此问题,这是我找到的解决方法。如果您为该字段提供默认值,则上传将默认到默认图像所在的任何文件夹。在我的特殊情况下,无论如何我都想要一个默认图像,所以这可以杀死两只鸟。

以下是您可以如何做到这一点:

首先,请注意 FilerImageField 实际上是 filer.Image 的外键。因此,要添加默认值,您需要首先将 filer.Image 添加到您的数据库中以用作默认值,将其放在您要上传到的文件夹中。你如何做到这一点取决于你——也许是通过你的管理员,或者以某种方式进行数据迁移。然后,您可以使用如下方法将该图像设置为默认图像:

def get_default_image():
from filer.models.imagemodels import Image
try:
return Image.objects.filter(name='My Default Image').order_by('-uploaded_at')[0]
except IndexError:
return None

class MyModel(models.Model):
image = FilerImageField(null=True, blank=True, default=get_default_image)

这个实现有一些明显的注意事项。如果您的默认图像名称更改,您将回到没有默认图像的状态(因此,上传到“未分类上传”)。如果有多个具有该名称,则您的方法必须选择一个。我选择最近上传的一个。

如果您确信您永远不想更改默认图像实例,您可以通过 id 选择它。

所以这有点笨拙,但如果您正在努力让某些东西正常工作,也许您会接受。希望这对某人有帮助。

关于python - 使用 django-filer,我可以选择图像进入的文件夹,从 'Unsorted Uploads',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37066466/

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