将变量从中间件传递到模板

2024-04-20

我是 Django 初学者。到目前为止我学到了传递变量view to template。但现在我需要将变量传递到我的主布局。我可以在视图中的每个页面的定义中传递它。但它的重复太多了。于是我开始学习中间件。

我创建了 middlewares.py 并将其包含在设置中。在 middlewares.py 文件中,如何将变量传递到我的主布局?

下面是我当前的middlewares.py内容,我尝试了很多方法并将它们注释掉,因为不起作用。

from django.db import connections
from django.shortcuts import render, redirect

class NotificationsMiddleware(object):
    def process_view(self, request, view_func, view_args, view_kwargs):

        request.context_data['notification_count'] = 2
        response = view_func(request, *view_args, **view_kwargs)

        return response

    # def process_request(self, request):
    #     request.notification_count = 2
    #     return

    # def process_template_response(self, request, response):
    #     # response.context['notification_count'] = 2
    #     response.context_data['notification_count'] = 2
    #     # return response
    #     return render(request, 'main/locations.html')

您可以创建一个模板上下文处理器,首先创建一个 python 文件,该文件的方法返回包含您需要的信息的字典,然后使用您的示例在项目设置中将路由添加到此文件:

创建一个文件上下文处理器.py在您的应用程序上:

 from myapp.models import MyModel

 def my_context(request):
    context_data = dict()
    context_data['notification_count'] = MyModel.objects.all().count()
    return context_data

添加上下文处理器在你的设置.py

TEMPLATE_CONTEXT_PROCESSORS = (
    #  ...
    'myapp.context_proccessors.my_context',
)

您可以在任何模板中使用“变量”:

<p>Count: {{ notification_count }}</p>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将变量从中间件传递到模板 的相关文章

  • 没有 DateAdd() 的 SSIS 表达式前一个日期

    目前正在开发一个包 它将表达式从先前的日期传递到文件名 我当前的代码如下作为字符串变量 DT WSTR 20 DATEPART YYYY Dateadd DD 1 dateadd MM datediff MM DT DATE 1900 01
  • Django 表单:时间字段验证

    我觉得我在这里遗漏了一些明显的东西 我有一个 Django 表单 其中包含时间场 http docs djangoproject com en dev ref forms fields timefield在上面 我希望能够允许像 10 30
  • Django ORM:使用具有“and”功能的对象列表进行过滤

    新手问题 Models Item model Models attributes models ManyToManyField Attributes null True Attributes models Models title mode
  • Django DetailView 按外键过滤

    我有点困惑 想利用 DetailView 功能 使用外键作为我的过滤器来显示数据 基本上我的模型看起来像这样 class Category models Model name models CharField max length 30 s
  • 通过 ManyToManyField = Value 对 django 查询集进行排序

    如果有一些模型 例如 class Tag models Model name models CharField class Thing models Model title models CharField tags models Many
  • django:将表单字段添加到从另一个表生成的表单中

    我有这张表产品 size color etc 和另一张桌子图片 产品编号 picture 我已经从产品表生成了表单 但我还需要在该字段中向该产品添加图片 是否可以在产品生成的表单中添加图片字段 提前致谢 您可以在同一个表格中包含多个表格
  • 链接到 Django 页面的最佳方式

    我设法为我的索引创建一个 URL 标记 但现在我很困惑如何添加到其他页面的链接 我把这个放在我的urls py url r index name index 接下来我将此标签放入 href 中 url index 但是如果我想创建一个新页面
  • AbstractUser Django 完整示例

    我是 Django 新手 我已经尝试了几个星期 但找不到解决这个问题的方法 我想存储其他信息 例如用户手机号码 银行名称 银行账户 并希望在用户注册时存储手机号码 并希望用户使用 手机号码和密码 或 电子邮件和密码 登录 这是我的 User
  • django modelformset_factory - 管理表单数据丢失

    我仍在与表单集作斗争 我无法真正理解为什么会出现此错误 u ManagementForm 数据丢失或已被篡改 那是我的代码 请指出我的错误并帮助我解决这个问题 csrf protect transaction commit on succe
  • 部署到 Heroku 时找不到“site”模块

    我正在尝试将 django 应用程序部署到 Heroku 但我不断收到错误 ImportError no module named site 我正在使用来自的自定义构建包https github com jiaaro heroku buil
  • Django:如何从模型中验证 unique_together

    我有以下内容 class AccountAdmin models Model account models ForeignKey Account is master models BooleanField name models CharF
  • 在多个端口上运行 Django

    有人能告诉我如何同时在两个端口上运行 Django 吗 默认的 Django 配置仅侦听端口 8000 我也想在端口 xxxx 上运行另一个实例 我想将所有请求重定向到第二个端口到我的 Django 应用程序中的特定应用程序 我需要使用默认
  • 在 django 中进行单元测试时出现“auth_user 不存在”

    我已经尝试解决这个错误一周了 但我似乎不知道如何解决这个错误 使用这个存储库的其他人都没有遇到与我相同的问题 我是最新的源 所以它必须是某种本地问题 但我不知道它会是什么 每次我尝试运行我们编写的 django 单元测试时都会发生这种情况
  • Django:NoReverseMatch at /'myapp'不是注册的命名空间

    我在模板渲染期间遇到此错误 我想做的是允许用户上传 csv 然后将数据处理到模型中 第 109 行出错 myapp 不是已注册的命名空间 这是我的第 109 行代码
  • Django 在第二个数据库上调用存储过程

    我试图在多数据库 Django 安装上调用存储过程 但没有获得结果 存储过程 位于辅助数据库上 在 Django 中始终返回一个空数组 但在 mysql 客户端中执行时确实会出现预期结果 My view py文件 从 SomeDBModel
  • 将“http://”添加到尚未包含“http://”的 URL 前面

    我有一个input保存 URL 的字段 我希望这个保存的输入能够识别变量开头不存在 Http 但不知道从哪里开始 是否可以仅检查字符串的一部分 然后有一个在必要时追加的函数 如果您还想允许 https 我会使用如下正则表达式 if http
  • 将 WPF 属性数据绑定到变量

    我有一个 WPF 4 和 VB net 2010 中的项目 我想将媒体元素的音量属性绑定到另一个模块中的变量 请注意 变量的数据类型正确 因此无需转换 我该怎么做呢 首先 确保您的后台代码实现了 INotifyPropertyChanged
  • 在 Django ORM 中的子查询中返回多个值

    问题是关于Subquery and ArrayAgg在 Django ORM 中 例如 我有 2 个模型 彼此之间没有任何关系 class Example1 models Model ident Integerfield class Exa
  • Django 自引用关系?

    我正在尝试创建模型页面 页面也应该能够有 子页面 我的模型代码如下使Python崩溃 http pastie org private butthk1aaeb3pmh7mmag1g在我的Mac python 2 6 1 和Ubuntu 10
  • 在 Django 中执行模型创建代码

    我想在 Django 模型首次创建时执行一些代码 之后 每当保存它时 我想执行一些其他代码 第二个任务可以通过重写 save 方法轻松完成 我怎样才能完成第一个任务 延伸sdolan https stackoverflow com user

随机推荐