3

Django-Filer を使い始めたばかりで、管理システムにアップロードされた画像を実際に参照する方法について少し迷っています。

複数のアルバムを処理できる単一のページにシンプルな動的ギャラリーを表示する必要があります。各アルバムはページの新しい見出しであり、そのアルバム内のすべての画像がその見出しの下に表示されます。Django-Filer の管理システムで使用したい大まかな構造は次のとおりです。

    • イメージギャラリー
      • アルバム 1
        • 画像1
        • 画像2
        • 画像3
      • アルバム 2
    • もう一つのギャラリー

私の質問は、テンプレートでループを使用して、アルバム フォルダーを新しい見出しとして使用して各画像を表示するにはどうすればよいですか?

関連する 2 つ目の質問は、Folder モデルを拡張して説明フィールドを含めるには、その機能を損なうことなくどのようにすればよいかということです。

4

1 に答える 1

1

それは私がやったことです、多分それはいくつかの調整に役立つでしょう(あなたの最初の質問)。

まず、ファイラーにフォルダーを作成します (内部にサブフォルダーが存在する場合があります)。

その後、ギャラリーに入れたいフォルダごとに新しい FoldersModel を追加します。「画像ギャラリー」と「別のギャラリー」フォルダーを追加する必要があります。

models.py

from filer.fields.folder import FilerFolderField

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

ビュー.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

于 2016-10-25T14:04:50.647 に答える