Python 如何在Django类中存储CSS?
我正处于头脑风暴阶段,正在编写一个Django应用程序来输出html5幻灯片演示文稿。我希望能够为每个幻灯片对象定义一个样式(也可能是演示对象的默认值),它只是css定义颜色、大小。最后,我希望能够创建将演示输出到任意演示框架的函数,例如deck.js或fathom.js 我刚刚打出了我的应用程序模型的一个非常粗略的草稿: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
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美分。我不确定您是否可以在模型上完成,但可以肯定的是: