【问题标题】:Access the filer plugin directly to link pages with thumbnails直接访问文件管理器插件以链接带有缩略图的页面
【发布时间】:2017-11-26 17:58:53
【问题描述】:

我正在考虑根据放置在页面上的第一张图片创建缩略图。我在想最好的方法是直接访问文件管理器插件。

文档不清楚我如何做到这一点。有人知道吗?

我知道我可以使用以下方式访问页面标题:

from cms.models import Title

Title.objects.all()

是否有类似的方法可以访问每个页面上的图像?

【问题讨论】:

    标签: django python-3.x django-cms


    【解决方案1】:

    您可以像这样访问文件管理器图像模型:

    from filer.models.imagemodels import Image
    
    Image.objects.all()
    

    编辑: 如果您尝试访问占位符中的图像并且在视图中,您可以使用以下内容获取页面 cmsplugin_filer 实例。 (这未经测试,但希望能有所帮助)

    if request.current_page:
        placeholders = request.current_page.placeholders.all()
        plugins = []
    
        for placeholder in placeholders:
            plugins += list(placeholder.get_plugins().filter(plugin_type='PicturePlugin'))
    
        images = [p.image for p in plugins]
    

    【讨论】:

    • 看准了!您知道在特定页面上使用图像时验证的方法吗?
    • @Josh 你的意思是在页面占位符中使用?还是您添加了自定义页面扩展模型?我假设您使用 Django cms
    • 我确实是,但我对此很陌生。如果我的要求没有意义,我深表歉意。我已经通过 CMS 的文件管理器插件本身将图像添加到各个页面。我正在使自己成为一个博客,我希望能够创建一个代表每篇博客文章的缩略图库。理想情况下,缩略图应该是自动生成的。您建议的代码访问文件管理器,我想知道是否有办法找到它们是否已在页面上使用,或者与页面对象上详细的图像进行比较以进行验证
    • @Josh 所以听起来您在页面占位符中添加图像是正确的吗?如果是这样,您需要根据 cms 过滤器插件在其模型中使用的相关名称进行过滤
    • 我现在无法测试,因为我不在电脑上,但明天可以检查
    猜你喜欢
    • 2017-02-04
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 2020-02-25
    相关资源
    最近更新 更多