django - 如何在 django 中进行常见查询?
问题描述
我在导航栏上有一个“铃铛”图标 - 显示每个用户的通知。到目前为止,所有的导航栏都是通用布局,并包含在 django 中每个页面的块中。
现在的问题是,当我进入一个屏幕时,它需要对所有通知模型进行查询以显示通知。我有 24 页,这意味着需要获取通知 24 次。
如何有效地做到这一点,以便我只查询一次并在用户访问时在每个页面上显示通知。
请指导,我不知道要显示什么代码。如果您需要任何代码,请在评论中提及。
解决方案
要在 Django 中的许多模板上使用相同的变量值,您可以使用上下文处理器
在您的应用程序中创建一个 context_processors.py文件。并在里面写下你的逻辑。
from app.models import Notifications
def notifications_count(request) -> dict:
count = Notifications.objects.count()
return dict(notifications_count=count)
将其添加到 TEMPLATES 变量(设置文件)中的 Django context_processors
'context_processors': [
# ...
'app_name.context_processors.notifications_count',
]
在您的模板文件的最后
{{ notifications_count }}
您在所有模板文件中都有此值。
推荐阅读
- java - 使用正则表达式的 jsonAssert 嵌套 Json 验证
- docker - 为什么我无法连接到我的 socket.io 服务器?
- javafx - 如何定义胶子应用程序版本
- python - 解析json列表
- node.js - undefined 不可迭代(无法读取属性 Symbol(Symbol.iterator))
- java - 回到之前的活动
- python - 如何绘制方向梯度的直方图?
- javascript - highcharts:向 x 范围图表添加标记
- c++ - 直接显示当前位置 AVIMUX
- datepicker - ngModle 值未反映在“ng-pick-datetime”日期选择器控件的 UI 中