Django 模板中的 IsInstance 吗?

2023-11-26

有没有办法在 Django 模板中执行 isinstance/issubclass 操作?我意识到我可以编写自己的模板标签,但令我惊讶的是这不可能,这让我觉得我要么做错了什么,要么遗漏了一些明显的东西。

我希望显示两个不同的标记部分,具体取决于我在迭代集合时显示的项目类型。谢谢!


我认为这里的简单模板过滤器最适合。它的实施速度非常快并且易于调用。像这样的东西:

在 templatetags/my_filters.py 中:

from django import template
from django.utils.importlib import import_module

register = template.Library()

@register.filter
def isinst(value, class_str):
    split = class_str.split('.')
    return isinstance(value, getattr(import_module('.'.join(split[:-1])), split[-1]))

在你的模板中:

{% load my_filters %}

...

{% if myvar|isinst:"mymodule.MyClass" %}
...do your stuff
{% endif %}

虽然上面是示例代码(未经测试),但我相信它应该可以工作。 有关自定义模板过滤器的更多信息,请参阅Django 文档

EDIT:编辑答案以显示过滤器参数实际上是一个字符串而不是 python 类

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

Django 模板中的 IsInstance 吗? 的相关文章

随机推荐

  • 从 QChar 检索 Unicode 代码点 > U+FFFF

    我有一个应用程序应该处理各种字符并在某些时候显示有关它们的信息 我在 QChar QString 等中使用 Qt 及其固有的 Unicode 支持 现在我需要 QChar 的代码点来查找一些数据http unicode org Public
  • 使用 django 并扭曲在一起

    1 我想开发一个有论坛和聊天的网站 聊天和论坛以某种方式链接 对于每个线程来说 用户可以在该线程的聊天室中聊天 或者可以在论坛上发表回复 我正在考虑使用 django 进行论坛 并使用twisted 进行聊天 我可以将两者结合起来吗 使用t
  • 我应该使用哪种 X-UA 兼容模式?

    我一直在阅读有关在网页上使用文档兼容性元标记的主题 我有点困惑哪个内容值适合 用于 xhtml 过渡文档类型的共识 然后逐步使用 HTML5 文档类型 我们仍然支持 IE6 IE7 所以 IE EmulateIE8 是最合适的 有人可以帮忙
  • 手机锁定时 Android 服务停止工作

    我有一个启动服务的应用程序 该服务有一个计时器 每 30 秒弹出一次通知 我注意到以下行为 如果屏幕在屏幕上 则通知显示正常 即使应用程序在后台 如果屏幕关闭 通过电源按钮或本身关闭 则不会显示通知 如果屏幕关闭但我正在运行调试 则会出现通
  • Android:如何在启动屏幕上对齐 2 个图像

    我想使用包含 2 个图像的启动屏幕 主图像必须完全居中 次要图像必须位于底部和主图像之间的中心 The expected render is something like this But I don t see how to get th
  • Python结构模式匹配

    我无法运行此代码 match shape case Point x y case Rectangle x y print x y 我找不到matchPython 中的关键字 我在这里找到了它 https www python org dev
  • Angular 2:不改变 URL 的路由

    如何在 Angular 2 应用程序中进行路由而不更改 URL 这是因为该应用程序位于 Django 应用程序页面上的几个选项卡之一下 适合将 URL 保持不变 目前我里面有这样的东西app component ts RouteConfig
  • 有没有办法直接在 Jupyter 单元中调用 wait ?

    我见过此类代码在某些环境中工作的示例 例如https github com ipython ipykernel pull 323 但对我来说这只会提高SyntaxError so far Update 我知道在 纯 Python 中它不起作
  • 如何在java中检查(未经检查的)强制转换?

    我有以下问题 我想编写一个使用java反射的框架 我 从某处 获得一个类的名称 我想加载该类并创建一个实例 作为侧面约束 所有有效的类都属于一个公共超类 为了保持简单和容易 我不会发布我所有的课程 相反 我编写了某种 MWE 见下文 我该怎
  • 从 TFS 签出时的 .partial 文件

    当我从 TFS 查看解决方案时 我在整个项目中得到了很多 partial 文件 它们不在 TFS 服务器上 而在我的 PC 上 遗憾的是 其中一些阻止我的解决方案运行 我总是必须手动删除它们 我能以某种方式阻止这种情况吗 他们来自哪里 这些
  • 如何通过 slack API 删除/禁用用户?

    我对此尝试了多种方法 首先尝试获取没有任何用户 ID 的用户 这仅返回我的用户 然后尝试获取具有其他 id 的用户 它也可以正确检索数据 但是 我似乎无法将用户属性设置为 已删除 我正在使用这种Python方法 slack client a
  • 本地存储库需要 Git LFS 吗?

    我创建了一个专门存储在本地的 Git 存储库 我问自己 我是否真的需要 Git LFS 来存储二进制文件 据我所知 gitattributes已正确配置 如下所示 psd binary 是的 文件落在 git objects 但它们被压缩并
  • 创建CSS全局变量:样式表主题管理[重复]

    这个问题在这里已经有答案了 有没有办法在 css 中设置全局变量 例如 Color1 fff Color2 b00 h1 color Color1 background Color2 最新更新 16 01 2020 CSS 自定义属性 变量
  • CSV 到关联数组

    我见过很多关于如何获取 CSV 文件 然后创建一个以标题为键的关联数组的示例 例如 Brand Model Part Test Honda Civic 123 244 Honda Civic 135 434 Toyota Supra 511
  • 将范围扩展为:“1-3,6,8-10”到 [1,2,3, 6, 8,9,10]

    我试图在我的程序中添加一个选项 允许用户选择他想要执行的程序步骤 我希望能够解析像这样的字符串 1 3 6 8 10 并得到 1 2 3 6 8 9 10 你知道 Python 中是否已经存在正在执行此操作的东西吗 该函数执行您所要求的操作
  • Solr 可以加载原始 Lucene 索引吗?

    我的一些同事有一个大型 Java Web 应用程序 该应用程序使用使用 Lucene Java 构建的搜索系统 我想做的是拥有一个基于 HTTP 的 API 来访问那些现有的搜索索引 我以前使用过 Nutch 并且非常喜欢 OpenSear
  • WordPress 自定义注册表

    我有一位客户需要定制注册表 我需要在此页面上进行自定义设计 我需要添加自定义字段 例如名字 公司 电话等 有人可以帮我解决这个问题吗 询问 WordPress 问题的更好地方可能是WordPress 答案 无论如何 如果你想在没有插件的情况
  • 在角度引导程序中设置初始静态选项卡

    我似乎无法在角度引导选项卡集中设置初始选项卡 它始终将最左侧的选项卡设置为活动状态 给定 html
  • 忽略不允许的属性 IISMAJORVERSION 和“EnableUserControl”?

    我的安装程序包在我的计算机上运行 但在我同事的计算机上失败 查看日志 我可以看到一些属性值在 ExecuteAction 短语期间没有保留 有几个Ignoring disallowed property安装程序日志文件中的行以及这些属性在
  • Django 模板中的 IsInstance 吗?

    有没有办法在 Django 模板中执行 isinstance issubclass 操作 我意识到我可以编写自己的模板标签 但令我惊讶的是这不可能 这让我觉得我要么做错了什么 要么遗漏了一些明显的东西 我希望显示两个不同的标记部分 具体取决