0

私は、html5 スライドショー プレゼンテーションを出力する Django アプリを作成するブレインストーミング段階にいます。各スライド オブジェクト (およびおそらくプレゼンテーション オブジェクトのデフォルト値) でスタイルを定義できるようにしたいと考えています。これは単に色、サイズを定義する css になります。最終的には、deck.js や fathom.js などの任意のプレゼンテーション フレームワークにプレゼンテーションを出力する関数を作成できるようになりたいと考えています。

アプリ モデルの非常に大まかなドラフトを入力しました。

from django.db import models
from ckeditor.fields import RichTextField

class Presentation(models.Model):
    title = models.CharField()

class Slide(models.Model):
    title = models.Charfield()
    header = RichTextField()
    footer = RichTextField()
    presentation = models.ForeignKey(Presentation)
    slide_number = models.IntegerField() 
    audio = models.FileField(null=True, blank=True)
    style = models.ForeignKey(SlideStyle)

class SlideSegment(models.Model):
    slide = models.ForeignKey(Slide)
    duration = models.IntegerField() # duration of slide segment in ms
    position = models.SmallIntegerField() # to order segments
    content = RichTextField()

    class Meta:
        ordering = ['position']

class SlideStyle(models.Model):
    name = Charfield()
    css = ???

私の最初のアイデアは、TextField または UrlField を作成して CSS を保存することでしたが、すぐにこれに関する問題を特定し始めました。

Django のテンプレート システムを利用することは、これを行うための Django の方法のように思えます。データをプレゼンテーションやその他すべてから分離することです。しかし、django管理インターフェースを使用している管理者がスタイルを作成/削除し、スライドを作成するときにスタイルを選択できるように、これらのスタイルをどのように管理しますか?

4

1 に答える 1

1

通常、「スタイル」には、複数の css ファイル、背景画像、最終的にはフォントなど、単なる css ファイル以上のものが必要です。

「スタイル」をアップロード可能にする場合、考えられる解決策は、エントリ ポイントとして少なくとも「style.css」ファイルを含む必要がある zip を受け入れる FileField を使用することです。次に、アップロード時にファイルは /styles/ で解凍され、SlideStyle モデルは適切な URL を返す「style_url」プロパティを成長させます...

私の2セント。

于 2013-04-19T13:58:24.960 に答える