问题标签 [django-context]

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 投票
3 回答
739 浏览

django - Django - django-registration 激活电子邮件中的额外上下文

我正在使用我django-registration的一个项目。

我想在用于电子邮件激活的模板中添加一些额外的上下文数据。

查看注册视图源,我不知道该怎么做。

任何的想法 ?

0 投票
1 回答
197 浏览

jquery - Django - 模板标签中不可用的上下文包括

这是我的html的一部分。{{ form.subscription_year_plan }}外面和里面都可以,里面signup_1.html不行signup_2.html

会有什么问题?

0 投票
1 回答
643 浏览

django - Django 上下文处理器和中间件

我正在尝试在我使用请求变量制作的自定义 context_processor 中设置一个上下文变量。我尝试使用的请求变量是在我的自定义中间件中设置的。但是我收到以下错误:

这很奇怪,因为我的上下文变量正确显示。是不是因为中间件是在上下文处理器之后处理的?这样做的正确方法是什么?

0 投票
1 回答
373 浏览

django - 如何在 django 中实现自定义全局登录/注销功能

我正在尝试实现自定义登录/注销功能。我的要求与内置的 django 登录功能略有不同。因此,我必须以一种可以在数据库中输入值 0 / 1 来检查用户是否登录的方式来实现此功能。我有一个布尔值。这里的问题实际上是:我应该如何传递一个用户对象/一个变量,它告诉我我的用户已登录(在我的情况下users.is_logged_in = True:)到每个 html 模板,以便用户(和我的应用程序)知道它登录。此外,他应该能够通过单击每个 html 页面上的链接来注销。当用户成功登录时,是否有任何全局模板可以创建并制作占位符之类的东西?我的代码是:

PS:我已经研究了 render() 方法..

我可以做这样的事情并将模板用作全局模板或其他东西吗?但我看到的问题是,一旦用户通过身份验证,我就必须将他重定向到 appCenter.html。

0 投票
3 回答
1144 浏览

django - Django TEMPLATE_CONTEXT_PROCESSORS 被调用太多次

我需要在所有页面中显示一些统计数字,所以我决定使用上下文处理器。但我刚刚发现我的函数在每次页面加载时被调用 2 到 7 次。我在函数内部做了 4 个查询,所以我的性能很差。每个页面加载最多可能需要 28 (4*7) 个查询...

我想知道为什么会发生这种情况以及我能做些什么来避免它。

设置.py

视图.py

[更新 - 谢谢] @okm 和 @catherine 提供了非常好的和补充的解释。两者都是正确的,正如@okm 所说,上下文处理器被多次调用,因为我不止一次使用 RequestContext 。

@catherine 也是正确的。我们需要特别注意我们在上下文处理器中放置的内容。我更改了我的代码,我只是在登录页面中显示统计数字。

0 投票
1 回答
1430 浏览

django - Django:如何通过提供命名空间来获取模板的 url?

在渲染模板时,我想通过提供命名空间值而不是路径来检索模板的 url。例如,而不是这个:

我希望能够做到以下几点:

但上面会产生错误。我该怎么做?有没有办法将命名空间赋予函数并获取实际路径?

扩展示例:

- urls.py

- 应用程序库:urls.py

- 应用程序库:views.py

提前致谢。

0 投票
1 回答
435 浏览

django - 无法在中间件中反转视图

我正在尝试使用中间件在 Django rotue 中捕获丢失的变量 - 但是我无法反转 URL,因为 Django 找不到视图(即使它存在于 urlconf 中)。例如:

使用这条路线:

我正在尝试检测是否未给出游戏部分,并在这种情况下使用中间件重定向:

request.urlconf确实包含测试网址:

我唯一能想到的是 URL 重写器可能无法处理包含可选部分的正则表达式 - 更好的解决方案是为这些情况创建单独的视图(我将有很多视图可选game参数)或者我可以修复它吗?

更新

我设法通过删除路线中的包装括号来使其工作(因此它读取r'^(?P<game>[A-Za-z0-9]+/)?test'并通过'TestGame /'作为游戏传递 - 但这并不理想,因为我game.rstrip('/')每次都必须调用(尽管仅在中间件中) . 也很难使用标签作为以预期{% url %}结尾的名称。/

如果有人有更好的解决方案,请保持打开状态。

0 投票
1 回答
69 浏览

django - 如何在 Django 中的 URL 以外的其他地方将参数传递给 HttpResponseRequest

我正在尝试在 Django 中编写一个重定向到自身的表单,显示会根据您在表单中输入的内容而变化。为此,我在后端检索 POST 数据并希望以这种方式显示一条消息:{% if message %} {{ message }} {% endif %} 问题是如何传递message参数。

我知道我可以使用

但它会在 url 中显示消息,这不适合我的目的。你知道我怎么能做到并隐藏在我的后端,比如

0 投票
5 回答
8352 浏览

django - Django 测试 - 检查消息以获取重定向的视图

我一直在为我的一个 django 应用程序编写测试,并且一直在寻找解决这个问题已经有一段时间了。我有一个视图可以发送django.contrib.messages用于不同情况的消息。该视图如下所示。

现在,在测试这个 viewclient.get的响应时不包含包含 的context字典,messages因为这个 view 使用了重定向。对于呈现模板的视图,我们可以使用messages = response.context.get('messages'). 我们如何获得messages重定向视图的访问权限?

0 投票
1 回答
559 浏览

django - 在应用程序之间传递 django 上下文

所以我对 Django 还很陌生,正在创建一些简单的网站。现在我正在尝试创建一个可以用来托管我的其他一些应用程序的网站。目前,主站点通过将名称/网址字典传递给模板来呈现导航栏。例如,这是主网站的views.py:

这导致主视图和应用程序列表视图都有一个导航栏,其中包含指向 website.com/、website.com/apps/ 的链接,以及一个标题为“Dropdown”的下拉列表,其中包含指向 google 和 stackoverflow 的链接。

我的问题是我创建了另一个应用程序,该应用程序具有自己的视图,该视图使用自己的上下文值呈现给其他模板。例如,它可以使用:

如果我愿意,我可以切换应用程序以采用将“app/response.html”替换为“website/apprender.html”的参数,即:

但上下文仍然只包含用户和评论,而不是我的导航栏信息。我在想我应该为应用程序添加的输入上下文添加另一个参数,即

但我想知道最佳做法是什么。那么最佳实践是什么?