字段在模板中的verbose_name [英] field's verbose_name in templates

查看:125
本文介绍了字段在模板中的verbose_name的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

建议我有一个模型:

  from django.db import models 

class Test model.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()
/ pre>

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

  from django import template 
register = template.Library()

@ register.simple_tag
def get_verbose_field_name(instance,field_name):

返回一个字段的verbose_name

return instance._meta.get_field(field_name).verbose_name.title()

现在,您可以在加载库后,在模板中使用此模板标签:

  {%load verbose_names%} 
{%get_verbose_field_name test_instancename%}

您可以阅读有关 自定义模板标签 在官方django文档。


Suggest i have a model:

from django.db import models

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

How do i get my model's field verbose name in templates? obvious {{ test_instance.name.verbose_name }} doesn't work.

I would very apreciate the solution just like as when using forms, in template at the field one can use label attribute

{{ form_field.label }}

解决方案

You can use following python code for this

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

If you want to use this in template then it will be best to register template tag for this. Create a templatetags folder inside your app containing two files (__init__.py and verbose_names.py).Put following code in 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()

Now you can use this template tag in your template after loading the library like this:

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

You can read about Custom template tags in official django documentation.

这篇关于字段在模板中的verbose_name的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆