问题标签 [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 投票
1 回答
199 浏览

python - 一个 django 项目 - 根据域呈现不同的内容

我似乎正在使用 django 的site框架。:) 但。这是我不明白的:

如何编写动态视图来检查当前域并向该域呈现适当的内容

我所做的是:(我有一个带有单个 settings.py 的单个 django 项目)

  1. 创建了 2 个额外settings__domainname.py文件,并SITE_ID设置为 db 中 Site 对象的相应 ID
  2. 鉴于:

    /li>

我正在运行开发服务器./manage.py runserver --settings=myproj.settings_domainname

但无论如何我都在对其进行硬编码,我希望我的视图能够完全动态地检查和获取内容,而无需任何硬编码。

我怎样才能做到这一点?我正在努力让我的同事(他们可能想通过管理员创建新域)和我的(必须在视图中硬编码)的生活变得轻松。

非常感谢任何指导。

编辑 - 几乎是解决方案: .

我像这样扩展了站点模型:

鉴于,我可以这样做:

这有意义吗?Aaand 像往常一样,非常感谢任何反馈。

0 投票
3 回答
4428 浏览

django-fixtures - Django Sites Framework:初始数据迁移位置

在 Django 1.7 之前,当使用Django Sites Framework时,可以/应该使用Initial Fixtures定义初始数据。

myproject/fixtures/initial_data.json

由于它是一个全局项目设置,我在项目根目录中添加了一个“fixtures”文件夹,并将其添加到 FIXTURE_DIRS。

现在,我使用的是 Django 1.7,建议使用migrations。引用 Django 文档:

要为您的项目设置正确的名称和域,您可以使用数据迁移。

问题是迁移是特定于应用程序的

python manage.py makemigrations --empty yourappname

那么,使用数据迁移将站点信息添加到我的项目的推荐方法是什么?这种迁移应该住在哪里?

运行python manage.py makemigrations --empty sites会在第三方应用程序文件夹中创建迁移,所以我们不希望这样。

不应该将 MIGRATION_DIRS 定义为初始数据存在的 FIXTURE_DIRS 吗?

我在设置文档中找到了MIGRATION_MODULES,但问题仍然存在,它是特定于应用程序的。

0 投票
2 回答
1503 浏览

python - Django 1.7 多站点用户模型

我想为一个 Django 应用程序提供服务,该应用程序通过单个数据库但不同的用户集为多个网站提供服务。像博客应用程序一样思考,它将被具有不同主题的多个域使用,但通过向模型添加站点字段来使用相同的数据库。

我使用Django 的 SitesFramework来完成这项工作。但问题是,我无法为不同站点分离用户模型。我想将相同的用户模型与每个站点唯一的站点字段和电子邮件字段一起使用。

我试图AbstractUser像这样扩展模型:

但是给出了那个错误:'Member.email' must be unique because it is named as the 'USERNAME_FIELD'.

该问题的最佳做法是什么?

0 投票
1 回答
99 浏览

python - 无论在 django admin 中的站点如何,都显示所有模型实例

我启用了站点框架(包括中间件)并设置了两个站点(ID=1 和 ID=2)。我的一个模型使用 Site 的外键。为了争论,假设它看起来像这样

在我的 settings.py 我有 SITE_ID = 1

如果我在管理屏幕中创建人员实例,并将其站点设置为 ID=2 的站点,则它已创建,但它隐藏在当前管理屏幕中。

这对我来说似乎违反直觉。我想使用我的单个 django 管理屏幕来管理我的两个站点。在我的 list_display 中,我有“站点”,所以如果它向我显示所有实例,我就会知道它与哪个站点相关。

是否有某种方法可以确保在管理屏幕中显示我的模型的所有实例,而不管站点 ID 是什么?

我不想登录到两个单独的管理 URL 来管理所有模型实例。

0 投票
1 回答
133 浏览

django-sites - 我看不到 django-sitetree 的图标

站点树菜单图标

我看不到来自 admin/sitetree 的图标 ..

一定是网址问题。。我想不通。

我需要一些帮助。

0 投票
0 回答
214 浏览

python - 具有 django 站点框架的唯一用户名

我创建了多个站点,这些站点的用户标识如下:

如何在由“站点”框架提供支持的多个 Django 站点中获取唯一用户?

但是,如何让用户在他注册的每个网站上都是独一无二的?

例如:

这是两个不同的用户,但创建另一个Arti at domain.com不可能的,我会得到一个错误:“用户已经存在”。

0 投票
1 回答
1219 浏览

python - 在 Django Admin 中,如何强制“在站点上查看”按钮忽略站点?

在我将站点应用程序添加到我的 Django 应用程序之前,“在站点上查看”按钮使用了相对路径。这很有帮助,因为我的网站是通过几个不同的域和一个登台环境访问的。

我最近开始使用 Flat Pages 应用程序,这导致我也安装了 Sites 应用程序。

进行此更改后,所有“在站点上查看”按钮都使用在我的应用程序的默认站点中指定的域,而不是相对于访问 Django Admin 的域的路径。

是否可以覆盖“在站点上查看”按钮(或get_absolute_url()每个相关模型的功能)以忽略站点域,并返回使用相对路径?

0 投票
1 回答
301 浏览

django - 我应该使用 FQDN 作为 Django 站点框架中的“域”吗?

我有一个网站,其中对非 www 域的任何请求,即由服务器http://example.com重定向(状态为 301)http://www.example.com

如果我使用 Django 的sites框架,我应该将设置为example.com还是www.example.com?我见过的所有文档都将域称为example.com. 如果站点框架将域full qualified domain name称为domain name. Django 文档将域定义为“与网站关联的域名”。这让我觉得它应该没有 www 部分。但这会破坏站点地图(Django 生成所有没有 www 的 URL)。

设置是造成混乱的PREPEND_WWW另一个原因。似乎 Django 希望您将域定义为example.com,然后使用此设置添加www.

0 投票
1 回答
63 浏览

django-models - 如何使 Django 管理员更改列表仅显示当前站点的实例

我有一个模型,我只想链接到一个站点。我将使用文档示例:

但是在每个站点的管理员中,所有对象都会显示,无论它们的站点设置如何。我想要:

  • 将管理员更改列表数据集限制为站点为当前站点的实例
  • 使用当前站点集自动设置新表单(并可选择隐藏它)。

使事情复杂化的是,该模型也是一个adminsortable.Sortable,但我不认为这会导致严重的问题。

0 投票
1 回答
885 浏览

python - 如何在 django 中设置站点框架

我正在尝试从 django 中的单个项目设置多个站点。我试图在https://docs.djangoproject.com/en/1.8/ref/contrib/sites/之后进行设置, 但没有提及设置,仅在实施后如何使用站点框架。

我之前已经实现了网站,并将网站添加到我安装的应用程序中,如下所示:

我试图发出命令:python manage.py makemigrations 但它说:

未检测到更改

我正在使用 django 1.8 ,站点框架设置是否仍然创建一个名为 django_site 的表?

如何进行初始设置以创建此表?