问题标签 [django-sites]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
1275 浏览

django - Django - 多站点站点缓存

我在一个 Django 应用程序下有许多站点,我想在这些站点上实现站点范围的缓存。然而,事实证明这是一个真正的麻烦。

发生的事情是settings.CACHE_MIDDLEWARE_KEY_PREFIX在启动时设置一次,我无法继续根据当前站点的内容进行更改。因此,如果一个 url 页面http://website1.com/abc/被缓存,则http://website2.com/abc/呈现缓存版本的http://website1.com/abc/. 这两个网站都在同一个 Django 实例上运行,因为 Django Sites 似乎允许我们这样做。

这是不正确的方法吗?因为我无法CACHE_MIDDLEWARE_KEY_PREFIX在运行时动态设置,所以我无法使用 Django 的站点范围缓存来缓存多个站点。我也无法为模板和视图缓存执行此操作。

我得到的印象是,真正需要设置的方式是每个站点都需要自己的 Django 实例,除了设置文件之外几乎相同,在我的情况下,设置文件的区别仅在于CACHE_MIDDLEWARE_KEY_PREFIX. 这些 Django 实例都读取和写入同一个数据库。这让我很担心,因为它可能会产生许多新问题。

我是走在正确的轨道上还是我误会了多站点架构需要如何工作?我检查了 Django 文档,并没有真正提到如何为服务于多个站点的 Django 应用程序处理缓存(这不是低级缓存)。

0 投票
1 回答
1428 浏览

django - 多个 Django 站点,一台服务器

我在同一台服务器上为同一客户端有多个站点,运行 django,例如fooplumbing.combazheating.org. 这两个站点将各自具有不同的 django 应用程序,即管道站点不应该能够访问供暖应用程序,反之亦然。两个站点之间没有共享对象,每个站点都需要自己单独的管理站点。

这是否可以通过站点框架之类的东西来实现,还是我需要两个单独的 apache 实例来运行站点?(是的,我需要使用 apache——别无选择)

它是一个 Linux 服务器,那么有没有一些巧妙的方法可以使用符号链接来做到这一点?我对基本的 django 开发非常有经验,但在服务器管理方面我一无所知。

0 投票
1 回答
271 浏览

django - Django 站点框架是否适合为具有不同逻辑和模型结构的站点提供服务?

我正在开发一个由其他人编写的应用程序。它积极使用站点框架为两个不同的游戏站点提供服务。这些站点运行在相同的代码上,在相同的数据库上:

如您所见,有一堆字段对其中一个站点无用。此外,我们不使用默认权限,而是创建自己的权限。这是因为用户在两个站点之间共享,一个用户有权在两个站点上添加游戏,而另一个人只能在站点 2 上添加它。

在视图、模型和管理器方法中也有很多代码,如下所示:

因此,当我处理 site1 代码时,site2 中的字段和代码只会让我感到困惑。如果我向第一个站点添加一个功能,通常我不需要在另一个站点上添加这样的功能。此外,我可能必须编写第三个站点,他们希望该站点在相同的代码和数据库上运行。为什么?因为他们认为这可以使代码在不同站点之间重用和共享内容。这听起来很不错,而且确实有一堆代码,这在网站之间很常见。但是在相同的代码上运行它们的站点逻辑和模型结构也存在很大差异。

代码很难维护,而且看起来很难看,也不简单。解决方案可能是将常用应用程序和特定于站点的应用程序分开。但几乎所有应用程序都有特定于站点的代码。我认为如果我有两个不同的项目,每个项目都有自己的代码和模型,那会简单得多。

那么,站点框架是否适合这里?什么时候合适?为什么 Django “强烈鼓励”它正在使用?

0 投票
1 回答
891 浏览

django - 一个人如何扩展 django.contrib.sites.admin 以包含模型中的字段,该字段具有指向站点的外键?

我正在努力扩展 django.contrib.sites.admin。由于 django.contrib.sites 对我的外国模型一无所知,我很难找到如何向站点管理页面添加字段。是否有一种简单的方法可以让我将以下示例中的“derp”字段添加到站点管理员?我是否必须扩展 django.contrib.sites.models 安全/等功能才能完成此任务?非常感谢。

编辑:我应该提到我有一个扩展 SiteAdmin 的类的 admin.py 文件。我了解 admin.site.unregister 和 admin.site.register。我只是不知道如何将具有外键关系的字段包含回 django.contrib.sites。

0 投票
1 回答
1224 浏览

django - Django Sites - 两个站点的不同 urls.py

我为我的客户维护一个 Django webapp。我们在 Django 中构建了它,对于计算机用户来说,它很棒。我们现在想迎合移动设备用户。

在模板切换之上,我们还需要以不同的方式工作。该应用程序将具有以稍微不同的方式工作的视图,但 URL 结构也需要简化。

我意识到我要要求的内容违反了 DRY 的精神,但是有没有一种好的方法可以将其拆分为urls.py一半用于ourdomain.com而另一半用于m.ourdomain.com?如果我能做到这一点,我可以添加一个mobile_views.py并编写新的视图。

项目中启用了 Django 的站点,但我很高兴使用硬编码request.domain.startswith('m.')风格的 hack。看起来这样可能会更好 - 但我不知道如何从 URL 文件中获取请求。

0 投票
1 回答
636 浏览

django - 如何让 Django 根据 HTTP 请求中的“主机”标头确定要使用哪个站点对象?

sites考虑一个 Django 应用程序,它使用标准 Django框架为多个站点提供服务,内容略有不同。

托管它的传统方法是配置多个对象并在多个 Django 项目中设置应用程序,每个项目在各自的:s中Site指向不同的项目。SITE_IDsettings.py

由于各种原因,我想避免为每个新站点创建一个新项目。我希望能够设置一个项目并让 DjangoSite根据传入的 HTTP 请求中引用的主机名确定要使用哪个对象。

实现此功能的推荐方法是什么?

澄清:我希望站点框架忽略settings.SITE_ID(在 中硬编码settings.py),而是根据Host标头中的内容动态获取站点对象。为什么有这个要求?我将每小时多次添加和删除站点,站点总数将超过 10,000 个,因此不能为每个站点设置一个 Django 项目。这是一个可以在 Django 中解决的问题吗?如果是这样,实现它的最佳方法是什么?

0 投票
1 回答
511 浏览

django - 有没有办法在 Django 的站点框架中添加字段?

我真的很喜欢站点框架的想法,它可以使应用程序跨多个网站运行。有没有办法将字段添加到Site数据库的对象上,或者我应该只创建外键一对一的关系?

0 投票
3 回答
221 浏览

python - 使用通用身份验证/注册后端分隔 Django 站点

我需要将当前的 Django 应用程序拆分为两个站点。

站点 A 将包含面向公众的站点,该站点将包含所有静态页面和注册系统。

另一个站点——站点 B——是注册用户的站点。他们还可以通过站点 B 登录应用程序站点。

如果我没记错的话,我可以使用django.contrib.sites框架来完成拥有多个站点的任务,但可以有一个共同的身份验证/注册后端?

我怎样才能做到这一点?

谢谢。

0 投票
2 回答
5271 浏览

django - 当前站点是否可以通过模板访问?

我试图简单地Site从模板中获取当前的解析,如下所示:

不幸的是,这并没有带来什么。

有没有办法从模板访问当前站点?

0 投票
1 回答
596 浏览

django - Django不正确的导入

我正在使用 django 1.2.4 开发一个 Web 应用程序,但我的站点模型有问题。我尝试:

undefined variable from import: _meta在 if 语句中收到错误,有什么帮助吗?