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

python - 基于 User-Agent 更改 Django 模板

我做了一个 Django 网站,但我喝了 Koolaid,我想做一个iPhone版本。经过深思熟虑,我提出了两个选择:

  1. 制作一个完整的其他网站,例如 i.xxxx.com。使用 Django 的站点框架将其绑定到同一个数据库中。
  2. 找一些中间件读取用户代理,并动态更改模板目录。

但是,我真的更喜欢选项#2;我有一些保留意见,主要是因为 Django 文档不鼓励即时更改设置。我找到了一个可以做我想做的事情的片段。我的主要问题是让它尽可能无缝,我希望它对用户来说是自动的和透明的。

有没有其他人遇到过同样的问题?有人愿意分享他们是如何处理制作 Django 网站的 iPhone 版本的吗?

更新

我结合了中间件并调整了模板调用。

对于中间件,我使用了 minidetector。我喜欢它,因为它可以检测到大量的移动用户代理。我所要做的就是在我的视图中检查 request.mobile 。

对于模板调用调整:

我将它用于我知道我有两个版本的任何视图。

去做:

  • 弄清楚如何在 render_to_response 的扩展版本中访问request.mobile,这样我就不必使用 check_mobile('template_name.html')
  • 如果不存在移动版本,则使用以前的自动回退到常规模板。
0 投票
3 回答
3256 浏览

python - 如何在 Appengine 的 webapp 框架中添加中间件?

我正在使用 appengine webapp 框架(链接)。是否可以添加 Django 中间件?我找不到任何例子。我目前正在尝试让 FirePython 中间件工作(链接)。

0 投票
2 回答
755 浏览

django - Django - 计算模型实例视图(用于“顶级条目”应用程序)

我是新手,很困惑。我想创建一个模块来跟踪文章和博客模型的“热门”实例。我不想接触文章或博客模型的代码。这是中间件的候选人吗?看着HttpRequest.path

0 投票
3 回答
393 浏览

django - 如何限制用户对自己的模型投票

我正在使用 django-voting 作为我的两个模型的投票应用程序。这两个模型都有“作者”字段。

如何在不修改 django-voting 应用程序的情况下限制用户对将此特定用户设置为作者的模型进行投票?

Django 中间件是我想到的第一件事,但我不明白它的“proces_view”功能。如果您认为中间件是正确的方法,请举例说明如何做。

0 投票
4 回答
7663 浏览

python - 条件 Django 中间件(或如何排除管理系统)

我想使用我在整个网站上编写的一些中间件(大量页面,所以我选择不使用装饰器,因为我想为所有页面使用代码)。唯一的问题是我不想将中间件用于管理代码,而且它似乎对它们很活跃。

有什么方法可以配置 settings.py 或 urls.py ,或者代码中的某些内容以防止它在管理系统的页面上执行?

非常感谢任何帮助,

干杯

保罗

0 投票
3 回答
655 浏览

django - 在 Django 中的每个请求中更改 Cookie 标头值

每次请求时,Cookie 中的值都会以某种方式发生变化。

因为我正在使用身份验证和会话中间件(添加 Vary: Cookie 标头)。我无法缓存页面。

任何提示我可以如何改变这种行为?

0 投票
2 回答
286 浏览

django - 使用中间件或自定义模板标签进行不经常更改的代码段

我的侧边栏中有一个我想要的小片段。该片段将在每个页面上可见,虽然获取成本很低(在我的超慢上网本上大约需要 50 毫秒!),但更改频率非常低,以至于我很想缓存它(部分原因是我还没有使用 Django 的缓存框架,我想学习)。

我不确定最好的方法是什么 - 中间件或自定义模板标签?我不确定使用这些方法实现缓存有多容易。这是想要做的标准事情(即,每个页面上可见的片段的片段缓存),我确信有一种Djangonic方法可以做到这一点,但我找不到它是什么。

你怎么做呢?

0 投票
3 回答
1939 浏览

python - 在 Django 中间件中修改地址

我不知道这是否可能,但我想使用中间件在 URL 末尾添加一些参数。修改请求的 URL 后可以不重定向吗?

IE。用户点击: .../some_link 和中间件将其重写为: .../some_link?par1=1&par2=2

另一种方法是修改响应并替换每个 HTML 链接,但这不是我想做的事情。

谢谢

0 投票
1 回答
451 浏览

django - 来自 Django 的 CSRF 中间件的大量误报?

我从 Django 的 contrib CSRF 中间件中得到了大量的误报。仅仅从网站的正常使用来看,在很多情况下,CSRF 刚刚开始将请求作为可疑的伪造攻击来阻止。

还有其他人有这样的问题吗?我正在使用 Django 的 SVN 分支,因此拥有最新版本的 CSRF 中间件。我如何诊断这些问题?

更新:我在我的生产和开发网站上看到了这些误报。它们偶尔发生。我的站点使用子域,并且站点的不同开发/生产版本在不同的服务器上运行,但由子域分隔。什么会触发 CSRF 攻击警告?是在将开发 cookie 发送到生产站点时吗?在同一登录用户的子域之间移动会导致问题吗?

0 投票
3 回答
14139 浏览

django - 检测语言和 django locale-url

我想用英语和西班牙语部署一个网站,并检测用户浏览器语言并重定向到正确的语言环境站点。

我的网站是 www.elmalabarista.com

我安装了 django-localeurl,但我发现没有正确检测到语言。

这是我的中间件:

但是,尽管我的操作系统和浏览器设置是西班牙语,但网站总是会到达美国。

然后,我破解了 locale-url 的中间件并执行以下操作:

但是,这可以检测到语言,但会将“en”网址重定向到“es”。所以不可能用英语导航。

更新:这是最终代码(在Carl Meyer的输入之后),修复了“/”的情况: