我想将布局模型添加到我的网站(常规设置文件),并且我希望它可以在管理界面中进行配置。
class Layout(...Model):
primary_header
logo_image
...
此结构不应保存在表格中。
我想知道是否有一个内置功能可以帮助我做到这一点。
谢谢
我的用例是网站的可配置布局。WordPress 风格。我想将该数据存储在一个具体的类中,而不必自己实现文件 /xml 序列化。
我想将布局模型添加到我的网站(常规设置文件),并且我希望它可以在管理界面中进行配置。
class Layout(...Model):
primary_header
logo_image
...
此结构不应保存在表格中。
我想知道是否有一个内置功能可以帮助我做到这一点。
谢谢
我的用例是网站的可配置布局。WordPress 风格。我想将该数据存储在一个具体的类中,而不必自己实现文件 /xml 序列化。
抽象模型呢?它不保存在数据库中并且是子类化的,但是您可以创建它的实例并使用它的属性。我假设您希望传递某种满足模型实例要求的临时数据结构。
class Layout(models.Model):
class Meta:
abstract = True
如果您出于某种原因需要实际的具体模型,并且可以为它们创建表,那么从技术上讲,您还可以重新实现 save() 方法并使其无操作。
我真的不明白你将在哪里以及如何使用它,但这确实是一个无法保存的模型。
就个人而言,我实际上在使用 mongodb 和 nonrel django fork 的项目中使用了不打算保存的模型。我创建的模型纯粹是为了作为嵌套子文档嵌入到其他模型中,我从不希望它们被提交到单独的集合中。
更新
这里是另一个建议,它可能会让你的目标变得更容易。为什么不直接使用普通的 django 模型,像往常一样将其保存到数据库中,然后创建一个简单的导入/导出函数将其保存到 XML 或从 XML 读取到实例中。这样您就可以获得 100% 的正常管理功能,您仍然可以查询数据库中的值,并且 XML 部分只是一个简单的附加组件。您还可以使用它来升级首选项并将某个选项标记为活动。