Получение имени (Verbose Name) модели или объекта из шаблона
Предположим, у нас есть такой пример модели:
from django.db import models
class Snippet(models.Model):
....
class Meta:
verbose_name = 'Snippet'
verbose_name_plural = 'Snippets'
И возникла необходимость вывести подробное имя (Verbose Name) в шаблонах Django.
При попытке сделать это также как и в коде Python ничего {{ object._meta.verbose_name }}
не получится, так как шаблонизатор Django не дает доступ к приватному объекту _meta
.
Но для решения проблемы можно сделать простой шаблонный фильтр.
Создаем файл templatetags/my_tags.py
, который содержит такой код:
from django import template
register = template.Library()
@register.filter
def verbose_name(obj):
return obj._meta.verbose_name
@register.filter
def verbose_name_plural(obj):
return obj._meta.verbose_name_plural
Теперь можно выводить имя модели в шаблоных с помощью этого фильтра:
{% load my_tags %}
{{ object|verbose_name }}
{{ object|verbose_name_plural }}
Вернуться на верх