有没有办法在Django模板中获取任何对象的模型名称.手动地,我们可以通过在模型中定义方法或使用模板标记来try ……但是有没有内置的方法呢?

推荐答案

object.__class__.__name__object._meta.object_name应该会给出模型类的名称.但是,这是cannot be used in templates,因为属性名称以下划线开头.

没有从模板中获取该值的内置方法,因此您必须定义一个返回该属性的模型方法,或者对于更通用/可重用的解决方案,使用模板过滤:

@register.filter
def to_class_name(value):
    return value.__class__.__name__

您可以在模板中使用它作为:

{{ obj | to_class_name }}

Django相关问答推荐

Django中的Sync_to_Async修饰器、异步视图

获取 Django (postgres) 中带注释字段的平均值

Django prefetch_related 与 3 个不直接相关的模型

查询 django 模型以找到当月最好的公司销售

Django - 使用在 URL 中传递的父类主键从子类中过滤对象

超级用户在基于类的视图中进行身份验证

Django 有脚手架吗?

Django 嵌套事务 - with transaction.atomic()

PyCharm:强制 Django 模板语法突出显示

Django Calendar日历小部件?

在 Django 管理屏幕中删除添加另一个

使用 XMLHttpRequest 提示下载文件

Django:使用render或render_to_response时添加响应头

超过 1 个外键

Python 社区里的小马是怎么回事?

从表单获取模型实例而不保存

如何在 Django/Python 中减go 两个日期?

如何重置 PostgreSQL 表上的 ID 序列

django.db.utils.OperationalError 无法连接到服务器

在 Python 中生成 API KEY 和 SECRET 的最简单和最安全的方法是什么