Django-filer:读取模板中的文件夹结构以创建图库

时间:2016-07-07 03:40:33

标签: django django-filer

我刚刚开始使用Django-Filer,但我对如何实际引用管理系统中上传的图像感到有点迷失。

我需要在单个页面上显示一个简单的动态图库,可以处理多个相册。每个专辑都是页面上的新标题,该专辑中的所有图像都显示在该标题下。 我希望在Django-Filer的管理系统中使用的粗略结构是:

    • 图片库
      • 专辑1
        • 图片1
        • 图片2
        • 图片3
      • 专辑2
    • 另一个画廊

所以我的问题是,在模板中使用循环,如何使用Album文件夹作为新标题来显示每个图像?

第二个相关问题是:如何在不破坏任何功能的情况下扩展文件夹模型以包含描述字段?

1 个答案:

答案 0 :(得分:0)

这就是我所做的,也许它会对一些调整(你的第一个问题)有所帮助。

首先我在filer中创建文件夹(里面可以有子文件夹)。

之后,我为库中我想要的每个文件夹添加新的FoldersModel。你必须添加"图像库"和#34;另一个画廊"文件夹。

models.py

from filer.fields.folder import FilerFolderField

class FoldersModel(models.Model):
    folder = FilerFolderField()

views.py

from django.shortcuts import render
from models import FoldersModel

def show(request):
    all_folders = FoldersModel.objects.all()

    return render(request, 'main.html', {'all_folders': all_folders})

main.html中

{% load thumbnail %}

    {% for f in all_folders %}

    <div class="title">{{ f.folder }}</div>

    {% for img in f.folder.files %}
    <!-- show files from folder -->
        <img src='{% thumbnail img 200x200 crop=scale %}'/>
    {% endfor %}

    {% for subfolder in f.folder.get_children %}
    <!-- getting all subfolders -->
        <div class="title">{{ subfolder }}</div>

        {% for img in subfolder.files %}
        <!-- show files from subfolder -->
        <img src='{% thumbnail img 200x200 crop=scale %}'/>
        {% endfor %}
    {% endfor %}

{% endfor %}

我不确定这是否是最好的方法,但对我有效。

编辑:
我认为最好使用它: https://django-filebrowser.readthedocs.io/en/latest/filelisting.html