django - 模板中字段的 verbose_name

标签 django django-templates

假设我有一个模型:

from django.db import models

class Test(models.Model):
    name=models.CharField(max_length=255, verbose_name=u'custom name')

如何在模板中获取模型字段的详细名称?以下不起作用:

{{ test_instance.name.verbose_name }}

我非常感谢这个解决方案,就像我们在使用表单时所做的那样,在模板中使用标签属性:

{{ form_field.label }}

最佳答案

您可以使用以下 python 代码来实现此目的

Test._meta.get_field("name").verbose_name.title()

如果您想在模板中使用它,那么最好为此注册模板标签。在您的应用内创建一个 templatetags 文件夹,其中包含两个文件(__init__.pyverbose_names.py)。将以下代码放入 verbose_names 中。 py:

from django import template
register = template.Library()

@register.simple_tag
def get_verbose_field_name(instance, field_name):
    """
    Returns verbose_name for a field.
    """
    return instance._meta.get_field(field_name).verbose_name.title()

现在,您可以在加载库后在模板中使用此模板标记,如下所示:

{% load verbose_names %}
{% get_verbose_field_name test_instance "name" %}

您可以阅读 Custom template tags在 django 官方文档中。

关于django - 模板中字段的 verbose_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14496978/

相关文章:

python - 如何在 Django REST Framework 中序列化与自身的递归关系?

javascript - 如何在 Javascript 中访问从 Django 应用程序发送的上下文变量

python - 我需要能够重新下载提交到我的 django 网站上的文档

DJANGO:如何在同一模板上访问 ListView 和 DetailView 中的数据?

python - Django ModelForm 标签自定义

python - Django - 模板中的条件渲染

django - 如何在 Django 管理中的字段旁边添加自定义按钮?

django-通知-hq : cannot show notifications

django - 如何在 Django block 中包含模板标签

django - {%load static%}和{%load staticfiles%}:哪个是首选?