Django管理站点:如何创建单页全局设置?
我想在Django的管理网站上创建一个单独的页面,这样我就可以修改一些网站的全局变量,比如网站的标题、导航菜单中的项目等等。目前这些变量是作为上下文处理器写死在代码里的,但我希望能让它们变得可编辑。就像在WordPress中那样。
这可能实现吗?
- 我可以把数据存储在数据库里,但我能在管理网站上放一个链接,直接跳到第一个文档记录,并且不允许创建多个记录吗?因为多个记录是没有意义的。
- 除了在数据库中创建一个模型,能不能直接在管理网站上修改一些上下文处理器?我觉得这样会更好。
3 个回答
2
有一个叫做 django-values 的应用,它可以让你把一些特定的设置存储在数据库里。
4
这听起来像是网站框架的一个功能,正是为了帮助解决这个问题。
http://docs.djangoproject.com/en/stable/ref/contrib/sites/
“它是一个用来将对象和功能与特定网站关联的工具,同时也是存放你用Django搭建的网站的域名和‘详细’名称的地方。”
文档里说它主要是为了多个网站而设计的,但其实在单个网站的Django模型中放东西也是很不错的选择。
5
django-preferences 正好满足你的需求。它的实现方式有点小技巧(特别是通过设置 __module__
来让 Django 误以为这个模型是从另一个应用加载的),不过它确实能正常工作。