问题标签 [django-hosts]

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 回答
111 浏览

django - 特定于主机的请求会中断不相关的测试用例

我有以下测试:

TestATestB成功运行,但 TestC 中断

但是当我注释掉 TestB 时,TestC 工作!我该如何解决这个问题?

我正在使用具有以下配置的 django-hosts:

和相当简单的 URL 文件:

作为参考,这里是完整的项目

0 投票
2 回答
1715 浏览

django - django.core.exceptions.ImproperlyConfigured:无法加载 WSGI 应用程序“netfacer.wsgi.application”;导入模块出错

我只是 django 的初学者。我尝试通过链接创建子域。当我运行我的项目时,它显示以下错误

django.core.exceptions.ImproperlyConfigured:无法加载 WSGI 应用程序“netfacer.wsgi.application”;导入模块时出错。

图片 1/2 图片2/2

我的设置.py

主机.py

上面链接中的文档也让我感到困惑

0 投票
0 回答
283 浏览

django - 尝试访问 api 时,Django_hosts 集成会产生“NoReverseMatch at /en/api/”

我正在集成 Django_hosts。我的前端 URL 和管理 URL 已成功集成并正常工作,但由于此错误,我的 REST API URL 仍然无法访问:

该错误被追溯到 Django/urls/base.py,但我不确定是什么触发了它:

这些是我的 hosts.py 和 api_urls.py 文件:

此外,在尝试转换此 url 时,用一块石头杀死两只鸟:

到这个网址:

它没有抛出没有参数的 NoReverseMatch 错误,就好像忽略了参数一样。

任何了解此软件包或这些问题的人的任何帮助将不胜感激。

谢谢。

更新

我通过在 api_urls.py 文件中包含 admin.site url 解决了这个错误:

但是,现在我遇到了一些奇怪的事情,这并不完全是一个错误,但对于我的用例来说实际上是一个错误。API 似乎不再识别 request.user,因此即使用户登录,API 也认为他是 AnonymousUser。

*API 和 Admin 子域均无法识别登录用户。似乎与SESSION cookie有关...

0 投票
1 回答
92 浏览

django - 如何将模板标签从普通 django 转换为一个 django-hosts 使用

我刚刚添加了 django-hosts 来为我的网站设置子域,效果很好。下一步只是将我模板中的所有普通 django URL 转换为一个 django-hosts 之类的。

我知道如何链接页面,但是一旦我需要向我的 URL 添加变量,我就不确定如何为其构建代码。

正常的 django URL 有效

如何将其转换为 django-hosts 喜欢的 URL?我尝试了以下方法:

主机.py

golemstats.urls

0 投票
1 回答
254 浏览

django - Django2:如何与 localhost:8000 和子域 analysis.localhost:8000 共享“request.user”?

我正在使用 Django 构建一个博客,并且我已经实现了一个分析工具,它允许我绘制关于我的访问者的详细信息(国家来源、设备、浏览器......)。

analysis.localhost:8000localhost的子域,定义为具有自定义 Mixin SuperuserAccessRequired的基于类的视图,如果用户不是员工,则返回401 Unauthorized(我正在使用django-hosts处理子域,这是我第一次使用子域。)。

我的问题:

如果我登录localhost:8000并导航到analysis.localhost:8000我得到401 响应

我谦虚的假设说localhost:8000x.localhost:8000没有共享某些变量。

我该如何解决这个问题,我已经阅读了 5 次 django-hosts 文档,但我似乎找不到我所缺少的

我的代码:

项目/根/settings.py

项目/根/hosts.py

自定义混音:

更新

如果我从analysis.localhost中删除端口号,我会被重定向到 Apache 默认页面……很奇怪。(只是忽略这个更新,我忘记了 /etc/hosts,伙计,我正在失去它)

更新 2

深入研究这件事,看来我必须重写我的 SessionMiddleware。

任何帮助/指导将不胜感激。

0 投票
1 回答
370 浏览

python - 如何使用 django-hosts 子域和 DRF 登录 API 级别

我正在使用django-rest-framework (DRF) 来拥有一个可浏览的 API,该 API 应在api子域下可用,例如api.localhost:8000. 为了服务子域,我使用django-hosts。我无法在 API 级别(即在api子域下)实现登录和注销功能。

子域工作,但我不能让 DRF autentication 机制工作了。

问题

访问api.localhost:8000/显示了可浏览的 api 页面,这很好。DRF 登录按钮也可用。使用此按钮显示登录表单,但在提交表单时,我被重定向到http://login/当然无法解析的表单,因此登录失败。这同样适用于注销功能,这会导致http://logout/并且也会失败。以下是这些步骤的屏幕截图。

Django 设置

django-hosts 配置

网址配置

我对此不满意,但即使我在另一个子域中提供它,而不添加path("", admin.site.urls)到根 url conf 中,我总是得到'admin' is not a registered namespace. 出于同样的原因,我rest_framework.urls在这里包括,否则命名空间rest_framework没有注册。

为了使用DRF认证机制和Log inandLog out按钮,我rest_framework.urls在之前注册的namespace下包含了。之后,通常的应用程序 url 将包含users在下面的屏幕截图中,它们路由 API 端点。

截图

访问api.localhost:8000/显示可浏览的 api 页面。

页面 http://api.localhost:8000/

使用Log in按钮重定向到http://api.localhost:8000/login/?next=/哪个很好。

页面在 ttp://api.localhost:8000/login/

但是在提交表单后,我被重定向到http://login/当然无法解决的问题,因此登录失败。这同样适用于注销功能,这会导致http://logout/并且也会失败。

登录失败

如何修复身份验证机制以在 API 级别上工作?

0 投票
2 回答
712 浏览

python - 如何在 Nginx 中使用 django-hosts

我创建了一个 Django 应用程序,它有两个名为“api”和“consumer”的应用程序。现在我想为这两个应用程序使用子域。像api.server.comserver.com。我在网上搜索并找到了 django-hosts,所以我在我的 localhost 中实现了它并且工作正常。

之后,我将它部署在 AWS EC2 实例上并在 Godaddy 中创建子域,并将根域和子域都指向我的实例 IP。根域工作正常,但是当我尝试访问api.server.com时,它显示了默认的 Welcome to Nginx屏幕。请帮我解决这个问题。

nginx.conf

0 投票
1 回答
380 浏览

python - django-hosts - 如何管理子域 .django.urls.exceptions.Resolver404 中的无效 url?

我已经在我的系统中实现了 django-hosts 库。当我访问我域中的无效 URL 时,它将显示 404 页面并且一切正常。但是当我在我的子域中访问一个无效的 URL 时,它会引发 500 错误不去或 404。

基础.py

主机.py

api.urls.py

当我请求http://api.mydomain.com/favicon.ico时,它显示

如何处理子域中的无效 URL 请求?

0 投票
1 回答
460 浏览

django - django_hosts - NoReverseMatch:找不到“家”的反向。'home' 不是有效的视图函数或模式名称

版本:

我已按照此文档成功安装了 django_hosts 。

我现在可以成功访问https://blog.mysite.com 之类的页面

但是,页面上的 url没有正确解析。我遵循了django_hosts 官方文档中显示的示例。

这是我的设置的样子:

我的网站/urls.py

主页/urls.py

博客/模板/index.html

[[ 编辑 ]]

实际demo上传到github

0 投票
2 回答
31 浏览

django - 不同应用的不同扩展

我正在尝试为所有应用程序创建一个模板,但具有不同的基础(与应用程序相关)。

我正在使用 django_hosts:

主机.py:

树:

模板/document.html:

这个想法是:

当我去时,http://app1.example.com/document/我会看到templates/document.html扩展名app1/templates/app1/base.html,如果我去http://app2.example.com/document/http://application2.example.com/document/扩展名app2/templates/app2/base.html

一般来说,如果我在

app1/views.py:

应用程序2/views.py:

但我想从每个视图的 def 中删除上下文“基础”。

我不能使用app1/context_processors.pyand app2/context_processors.py,因为它会覆盖自己,因为 context_processors 是全局的而不是应用程序本地的。

有个想法:

但我没有包含包含的 urls.py,因为我有主机定义....