Python 如何在Django类中存储CSS?

Python 如何在Django类中存储CSS?,python,css,django,django-templates,Python,Css,Django,Django Templates,我正处于头脑风暴阶段,正在编写一个Django应用程序来输出html5幻灯片演示文稿。我希望能够为每个幻灯片对象定义一个样式(也可能是演示对象的默认值),它只是css定义颜色、大小。最后,我希望能够创建将演示输出到任意演示框架的函数,例如deck.js或fathom.js 我刚刚打出了我的应用程序模型的一个非常粗略的草稿: from django.db import models from ckeditor.fields import RichTextField class Presentat

我正处于头脑风暴阶段,正在编写一个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管理界面的管理员可以创建/删除样式,并在创建幻灯片时选择样式?

一个“样式”通常需要的不仅仅是一个css文件——多个css文件、背景图像,最终是字体等

如果“styles”是可上传的,那么一个可能的解决方案可能是使用一个接受zip的文件字段,它至少需要包含“style.css”文件作为入口点。然后在上传时,文件将在/styles/中解压缩,SlideStyle模型将生成一个“style_url”属性,返回相应的url


我的2美分。

我不确定您是否可以在模型上完成,但可以肯定的是: