如何在Mezzanine中更改ImageField小部件以使用媒体库浏览器?

时间:2015-01-21 21:05:53

标签: django django-admin mezzanine django-models

当我使用像

这样的常见Source类定义时
class Source(models.Model):
    photo = models.ImageField(upload_to=...)
    ...

我在管理模块中获得了一个公共对话框,显示当前分配的照片或空白字段。在后一种情况下,我可以从在本地磁盘上运行的文件浏览器中选择照片。

如果我更改博客图片,我只能将下载的照片分配到媒体库,并可通过媒体库浏览器获取。

如果能够从普通的ImageField中选择媒体库浏览器中的照片,我该怎么办?

为什么有两种方法可以做同样的事情?

1 个答案:

答案 0 :(得分:2)

我能够通过使用FileField代替ImageField来实现它。

from mezzanine.core import fields

class Source(models.Model):
    photo = fields.FileField("Image", upload_to="dir/", format="Image")

稍微挖掘一下代码,我发现Mezzanine的'FileField'只是filebrowser的'FileBrowserField'的抽象,如果它存在,否则它会回退到默认的django FileField。我不知道为什么他们也没有使它适用于ImageField。 FileBrowserField非常智能,可以从媒体库中查找,FileField则不然。所以你还需要安装filebrowser_safe。