字段在模板中的verbose_name [英] field's verbose_name in templates
问题描述
建议我有一个模型:
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
andverbose_names.py
).Put following code inverbose_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屋!