Как отобразить строковое представление объекта контекста в Jinja2? - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть свойство в модели:

@property
def model_name(self):
    """Return the model name."""
    return self._meta.verbose_name

В Django шаблонах я отображаю это просто, передав context['model_attr'] = self.model и затем отображая {{ model_attr.model_name }} в шаблоне.

Однако в Jinja2 это приводит к <property object at 0x7f789aba52c0>. Как отобразить str представление объекта?

1 Ответ

2 голосов
/ 04 февраля 2020

Здесь вам нужно будет создать свойство class , например, реализовав его в метатипе:

from django.db import models

class NamedModelMeta(<b>type(models.Model)</b>):

    @property
    def model_name(cls):
        """Return the model name."""
        return cls._meta.verbose_name

Тогда мы сможем использовать этот метакласс:

class MyModel(models.Model<b>, metaclass=NamedModelMeta</b>):
    # &hellip;
...