我正处于编写 Django 应用程序以输出 html5 幻灯片演示的头脑风暴阶段。我希望能够为每个幻灯片对象定义一个样式(也可能是演示对象的默认值),这只是定义颜色、大小的 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 管理界面的管理员可以创建/删除样式并在创建幻灯片时选择样式?