我对相对简单的Django实现感到舒适,但现在正在尝试理解多站点共享内容的过程。
我已经阅读了Django Sites Framework和许多相关主题的文章,但我还没有掌握如何启动第二个站点的基本知识,该站点使用相同的数据库,但呈现为不同的域名。
我有一个非常成功和符合规范的Django站点,由一个项目中运行的一个应用程序组成。
使用教程术语,我开始了一个名为“mysite”的项目。
django-admin.py startproject mysite
然后使用以下命令启动名为“polls”的应用:
manage.py startapp polls
问题1:网站框架是否假定每个站点都是单独的项目或单独的应用程序?
在项目中创建第二个应用程序'polls2'似乎很合理,但定义SITE_ID的settings.py似乎是整个项目的事情。是否有一种方法可以进行应用程序级别的设置?
如果在'mysite'旁边创建另一个名为'mysite2'的项目,则会给我提供第二个结构,它有自己的settings.py和单独的SITE_ID,但这似乎违反了“DRY(不要重复自己)”原则,因为我将重复许多相邻姐妹项目的元素。
问题2:听起来我需要将数据库模型(models.py)重新定义为多对多关系,以便在站点之间共享数据。这是否只会改变Django访问这些表的方式,还是现有站点的数据库也需要重新构建?
很高兴并且非常感谢您能够提供实施网站框架所需的指导。