0

我是 Django 的新手,我来自 Drupal 家族。在那里,我们有有机组,我们可以使用它们创建内容组和子站点;我如何用 Django 做这样的事情?

假设我正在使用 Django 为我的公司制作这个网站,我公司的每个部门都需要在网站上设置一个私人部分。例如,设计人员有自己的网站部分,后端开发人员无法进入。后端开发人员也会有同样的事情。

我想以这样一种方式构建站点,即我只需登录 Django 管理员并添加一个新的类别或子站点或组(无论 Django 术语是什么),其设置与其他组相同或具有类似设置。

4

1 回答 1

0

这取决于您所说的“私人部分”是什么意思。您可能应该尝试从不同的角度看待它:

Django通过“应用程序”拆分站点的功能。每个应用程序都执行其特定的操作,并在数据库中获取一组表。应用程序可以访问彼此的表。例如,其他应用程序访问 Auth 应用程序的用户、组和权限表是很常见的。这就是您所说的“子网站”吗?

至于访问控制,可以将用户分配到组,并且可以为他们分配各种管理权限。为每个模型(即数据库表)自动生成添加、更改和删除权限。您还可以添加自己的权限。

我认为您无法在 Django 级别将设计人员与后端开发人员分开。您需要做其他事情,例如为每个组维护单独的源存储库并将它们合并以创建可用站点(每个组都对另一个组具有只读访问权限)。这真的取决于你的团队的纪律,因为这些元素可以交织在一起。

Django 建议静态文件由其他东西提供服务,比如直接从您的 Web 服务器,或者从具有简单 HTTP 服务器(无 CGI/WSGI/其他)的另一台机器。这是因为与直接服务相比,Django 只能减慢静态文件的速度。但是,为了进行测试,您可以启用一个静态页面服务器。

鉴于所有这些,静态文件通常相当于 CSS、图像、媒体和 JavaScript。其中,后端人员可能想弄乱 JS,但仅此而已,所以这可能在设计师的 repo 中。

Django 树本身具有站点和应用程序的代码。几乎都是后端的东西。例外是 HTML 模板文件,位于每个应用程序的“模板”目录中。这些是由后端视图代码提供的上下文数据填充的文件。我不知道这对你们来说是前端还是后端;如果有很多 CSS 纪律,它可能主要是后端,但我认为这不太可能。

您可以在 Django 中做很多事情,让一方或另一方的生活更轻松。例如,模板标签允许自定义 Python 代码生成 HTML 以插入到页面中。例如,我使用这些来生成标签栏和窗格。

如果没有更好地了解您的需求,我真的无能为力。这个问题仍然很模糊。您最好花一两天时间阅读本教程,了解 Django 的观点是什么,然后确定它如何(或是否!)符合您的需求。

于 2012-05-24T01:41:37.177 回答