получить текст метки (verbose_name) из модели в шаблон django 3 - PullRequest
1 голос
/ 22 марта 2020

У меня есть эта модель

class Image(models.Model):
    image = models.ImageField(upload_to=multi_image_path, blank=True, null=True)
    product_id = models.IntegerField()

Я хочу напечатать эту модель verbose_name в шаблонах, например:

enter image description here

Я хочу, чтобы он печатался динамически, а не вручную

ОБНОВЛЕНИЕ 1

Этот метод

{{ myobject._meta.verbose_name }}

не работает, я Я использую django 3.0

Я получаю эту ошибку

Variables and attributes may not begin with underscores: 'image.product_id._meta.verbose_name'

1 Ответ

0 голосов
/ 22 марта 2020

Я нашел решение,

макет нашего приложения может выглядеть следующим образом:

polls/
    __init__.py
    models.py
    templatetags/
        __init__.py
        poll_extras.py
    views.py

И в вашем шаблоне вы будете использовать следующее:

{% load poll_extras %}

приложение, содержащее пользовательские теги, должно быть в INSTALLED_APPS , чтобы тег {% load%} работал, например так:

INSTALLED_APPS = [
    'polls'
]

обратите внимание, что вы должны установить ваше приложение следующим образом: 'polls' , если вы выполните 'polls.apps.Poll' , тогда {% load%} не будет работать.

После этого в poll_extra.py:

from django import template

register = template.Library()

@register.filter
def label_vb(instance, arg):
    return instance._meta.get_field(arg).verbose_name

затем внутри вашего шаблона:

{{ image|label_vb:"porduct_id" }}
...