问题标签 [django-middleware]

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

django - 将数据传递给中间件

我有为我做一些工作的中间件。是否可以将一些关于将要呈现的模板的数据传递给这个中间件?

让我们假设我有网址:

我想将价值传递给中间件。是否可以?

0 投票
2 回答
2833 浏览

django - Django 中间件和 HttpRequest 变化

我有一个中间件来为每个传入的请求进行一些计算/检查。有些观点需要这个计算结果。

由于我不想两次调用相同的代码,我想将结果放在中间件中的 HttpRequest 中,以便视图能够读取它。

你能帮我正确的提示吗,我怎样才能向 HttpRequest 添加一个对象?

谢谢

0 投票
2 回答
3598 浏览

django - Django 移动和全站重定向

我已经在 Google 上搜索了一段时间,但无法准确找到我要查找的内容,因此决定在这里向大家询问。

我有一个完整的网站和网站的移动版本(一页 jQuery Mobile 文件)。

理论上,我想要检查可能的移动设备的传入请求(我已经可以这样做)并重定向到移动站点。在移动站点上,用户可以单击指向设置 cookie 的完整站点的链接,并且不会将该用户重定向回移动站点(即使他们的设备每次请求都会满足该条件)。

我所能找到的只是关于如何检查移动/桌面设备的每个请求并相应地更改模板。在这种情况下,这不是我需要做的。对于移动版和桌面版来说,这是一个完全不同的模板。

在这种情况下有什么想法或解决方案可能会有所帮助?

更新 1:

所以我已经尝试实现这一点,但我遇到了一些奇怪的问题/问题。这是我的中间件(在设置中的中间件列表中最后列出)

这是当他们在 jQuery Mobile 中单击完整站点链接时要处理的视图。

在我看来,这应该可以正常工作,但事实并非如此。它从链接中访问 mobile_fullsite 视图,并且 url 从 .../mobile/ 更改为 .../fullsite/ 但它仍然看起来像 jQuery mobile,其中包含来自重定向页面的一些内容。

有任何想法吗?

0 投票
2 回答
223 浏览

django - 显示相同的“会话”,回合制 django 游戏

我真的不知道这种分散的问题是否适合这里,但无论如何我都会试一试。

我正在 Django 中构建一个基于回合的(Yatzee)游戏,其中我为用户/玩家提供了一个简单的拉力模型,为每个用户的记分板提供了一个更复杂的模型。

一个新游戏会生成一个新的记分牌,它基本上由许多 int-fields 和 boolean-fields 组成,每个分数一个(例如,如果你得到一个两对,有一个字段将保存分数和一个将其设置为“已分配”的字段)

问题是,通过这种方法,我在每回合后将分数保存到 db(sqlite) 中,我将能够“暂停”游戏并稍后继续。

我现在想开始研究的是如何在网络上为两个或多个游戏“托管”游戏,但实际上不知道从哪里开始。如果他们都坐在同一台计算机上没有问题,因为我可以通过 javascript 控制玩家/记分牌的数量。

为了做到这一点,我正在考虑以某种方式将属于“togheter”的记分牌分配给一个会话,但是我应该如何以及在哪里做这件事目前有点超出我的范围。

我已经阅读了一些有关 Django 中间件的信息,但无法真正弄清楚这是否比尝试从模型层解决它更好(相信这会有点困难......?)。

0 投票
6 回答
30259 浏览

python - Django:WSGIRequest'对象在某些页面上没有属性'user'?

如果用户登录与否,我想设置一个 cookie。

我的中间件:

最后添加到MIDDLEWARE_CLASSESsettings.py 中。

问题:

  • 错误:“WSGIRequest”对象没有属性“用户”
  • 为什么,当我已经激活了身份验证和会话中间件时?
  • 此外,有些页面运行流畅,有些页面出现此错误。
  • 我究竟做错了什么 ?
0 投票
2 回答
1209 浏览

django - Django 1.4 LocaleMiddleware not working with Apache, but works with runserver

My project has this middleware setting:

For local development, I setup a local_settings.py module which redefines the middleware setting as:

Here I'm just removing the cache-related middleware, just for development.

In my Apache deploy, the local_settings.py only redefines DEBUG (to False) and the DATABASES dict.

I even installed IPython in the project's production virtualenv (the one that the Apache server uses) and executed this:

But, despite all this, I still have to enter a language identifier in the URL (as httpp://mysite.com/en/myview/) to access any URL that uses from django.conf.urls.i18n.i18n_patterns. And one of the functions of django.middleware.locale.LocaleMiddleware is to do precisely that, when accessing a localized view without a language code prefix, guess it from the user-agent headers and redirect to the prefixed view.

How to debug what's going on?

0 投票
1 回答
1004 浏览

c# - 什么是 ASP MVC 中的 django 中间件等价物?

基本上,我想为每个请求注入一些数据到 ViewData/ViewBag 中。

0 投票
1 回答
572 浏览

python - 浏览器延迟在 django admin 中更改页面内容(缓存,python/django)

我在 django 的项目中缓存了一个奇怪的问题。

我可以在 django-admin 中编辑我的页面内容。当我这样做并刷新站点时-什么都没有发生。我必须等待几分钟才能进行更改。有趣的是,当我更改浏览器(或计算机)时 - 我不必等待 - 更改已开启。是django,浏览器的问题还是什么?是否可以设置 setting.py 以立即获得更改?

顺便说一句,我已经发现当我关闭“django.middleware.cache.FetchFromCacheMiddleware”时 - 问题消失了,但我不想关闭缓存......

有任何想法吗?

0 投票
1 回答
5282 浏览

django - 尽管 RequestContext Django 消息框架不显示消息

这是一个难题,

使用 Django 1.4,我无法通过消息中间件设置消息以显示在我的模板中。我梳理了Django 文档并确保我的 settings.py 文件引用了相关的应用程序、上下文处理器和中间件。我已确保我的视图是使用 RequestContext 实例呈现的。 然而,我仍然无法让任何消息出现在模板中。

设置.py:

我的消息 error_level 设置为 20(即“信息”及以上)。我正在使用默认映射。

视图.py:

模板:(funkyjazzdirectory/index.html)

我也试过用 {{msg}} 代替:

没有成功。

页面的其余部分输出正常,Django 不会抛出错误。控制台不包含任何异常。生成的 HTML 代码不包含 div,也不包含任何地方的列表标签。这个扩展的模板(base.html)不使用 {{messages}} 变量,也不调用使用它的模板标签。

我尝试将 {{messages}} 传递到自定义模板标签中,以便在 index.html 模板的顶部进行测试。在这里我可以做到:

...它产生一个可能是消息对象的方法/属性列表。然而,我根本无法对此进行迭代,因为“for m in messages:”甚至不会运行一次。尝试通过以下方式发现该实体的大小:

在控制台中没有给我任何东西。

我让它真正输出任何东西的唯一一次是当我手动将消息对象传递到 render_to_response 标记内的模板中,然后迭代 messages.error ({% for msg in messages.error %}) 这产生了两个要点在正确的 div 中:第一个填充了看起来像 var dump:", POST:, COOKIES:{'csrftoken':"... 第二个要点仅包含最后一条错误消息:“为什么不这样他妈的事情有用吗?”。(显然这只是一个测试,我没有将消息保存在通过 render_to_response 传递的字典中,因为我知道它应该通过上下文到达模板)

那么,我哪里做错了?

为什么我在模板中看不到错误消息?为什么我什至无法让消息出现在控制台中?

任何比我聪明的人能散发的光都会非常有帮助!

0 投票
1 回答
3543 浏览

django - 中间件:在 process_request 中使用模型并在 process_response 中修改它

Django 会在 process_response 之后展平响应吗?

我有这个模型(简化版):

和中间件(简化):

在第一种情况下,我在第四次请求时获得了禁止页面:

在第二种情况下,我在第三次请求时获得了禁止页面:

这第二种情况是我想要的方式。为什么我必须首先对模型进行字符串化才能正常流动?我误解了什么?


编辑

我发现了问题。在实际代码中,我为 django.contrib.auth.models.User 使用外键,并使用关联用户的用户名对我的 Ticket 模型进行 unicoding: