问题标签 [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.
django - Django 中间件确定会话中的用户组
我有一个使用 django.contrib.auth 但没有使用 Django 内置权限系统的应用程序。相反,视图具有 @login_required 装饰器,然后检查用户属于哪个组,并根据组在视图中遵循不同的代码执行分支。
一个用户只能属于一个组。
每次检查用户组似乎太多了,所以我正在尝试编写一个 Django 中间件,让我知道会话中的用户组。
看看下面的代码,我的中间件会像我想要的那样工作吗?
然后我打算在需要的地方检查 request.session['thegroup'] 。
需要您的建议和意见。如果以这种方式处理,会话是否安全?这会起作用吗?我是 Django、Python 和一般编程的新手。
谢谢。
django - 使用 Django 中间件检查当前页面 URL 中的 GET 变量
我可以使用中间件在页面请求之间保留多个用户选择的选项吗?
我有几个值,即车辆年份、品牌、型号、系列、样式、颜色和传输。我希望用户能够选择一个选项,同时保持先前选择的选项处于活动状态。我不想为此使用会话,因为我希望 URL 可以收藏。
我在想类似的东西:
我也不确定如何返回 get_choices() 下的所有选项。
编辑 1
编辑 2 我的 URLConf 如下:
然后视图如下:
django - 损坏的请求(或 Django 中的“损坏的链接”报告)?
我收到了奇怪的断开链接报告:
所以我看了一下负责发送这些报告的 CommonMiddleware。它是这样的(Django 1.1 license apply here ;)):
代码非常简单,很明显,在我收到的电子邮件中,Referrer与主机和请求 URL交换了。我不确定这意味着什么——如果是一些黑客试验、Django 中的一些错误或者我的代码中的一些错误(仅供参考:Django 尚未修补,其他broken link
电子邮件是正确的)。
你知道这里有什么问题吗?
django - Django:Django 中的堆栈顺序是什么?
我认为这是正确的提问方式。我想知道代码的哪些部分首先执行,其次执行,等等。
我的假设是,但我不知道:
- 要求
- 中间件
- 看法
- 模型
- 中间件
- 回复
我问的原因是因为我希望基于请求变量在模型中动态地发生一些事情,并且我正在尝试以最佳方式自动将请求添加到模型层而不通过视图传递。我会假设某种中间件奇妙的装置会以某种方式做到这一点。
django - Django 中间件:如何从中间件访问视图的参数
假设我有一个观点:
还有一个中间件:
当然 arg1 和 arg2 将通过带有 urls.py 的 URL 参数传入。
我需要这样做的原因是因为我想在视图函数运行之前向 request.session 添加一些东西(虽然我需要来自 URL 的东西)。
django - 如何更改 Django 网站中特定页面的语言
Django 国际化允许我在设置文件(站点范围)或每个用户/每个会话的基础上设置语言代码。
如何更改特定页面的语言?
我写了一个中间件来设置 request.LANGUAGE_CODE 我希望它被翻译的方式,但似乎没有使用这个属性来做选择的翻译。
python - 如何根据 request.get_host() 在 django 中更改数据库?
我正在创建多站点平台。任何人都可以使用我的平台制作简单的网站。我打算使用 django multidb 支持。一个站点一个数据库。我需要根据 request.get_host() 更改数据库设置。我认为我不是好主意。提示其他决定?它是如何在网站的各种设计者上实现的?
python - Django 启动代码放在哪里?
我想在服务器启动时执行这些代码行(开发和生产):
放入settings.py
它不起作用,因为它需要已经加载设置。
将它们放在视图中并从外部访问该视图也不起作用,因为有一些中间件使用数据库并且这些中间件会失败并且不允许我访问该视图。
将它们放在中间件中会起作用,但是每次访问我的应用程序时都会调用它。一个可能的解决方案可能是创建一个中间件来完成所有工作,然后将其自身从中删除,MIDDLEWARE_CLASSES
因此不再调用它。我可以在没有太多猴子修补的情况下做到这一点吗?
python - Django 中的非全局中间件
在 Django 中有一个设置文件,它定义了要在每个请求上运行的中间件。此中间件设置是全局的。有没有办法在每个视图的基础上指定一组中间件?我想让特定的 url 使用一组不同于全局集的中间件。
django - Django:如何在登录时在管理员中设置默认语言
我将用户的默认语言保存在他的用户个人资料中,登录时我想将管理员的默认语言设置为它。
我正在考虑的一种可能性是使用中间件,但我认为如果我这样做,process_request
我不会在那里看到用户对象,因为这是在中间件之后处理的,所以我只能在下一个请求之后设置它!
任何解决方案都非常感谢!