私は、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管理インターフェースを使用している管理者がスタイルを作成/削除し、スライドを作成するときにスタイルを選択できるように、これらのスタイルをどのように管理しますか?