maxclax
@maxclax

Как форматировать вывод в Djanga админ?

Поделитесь опытом, как форматировать вывод списка данных в админке. К примеру изменить вывод стандартного отображения даты, где-то добавить некий текст. В моем случае все проходит дополнительными функциями в классе, и как по мне это издевательство и говнокод. Получаеться что я в логике переопределяю шаблон и такого быть не должно.

class EPSAdmin(BaseAdmin):
    form = EpsForm
    list_display = ('info_tag_1', 'info_tag_2', 'info_tag_3', 'info_tag_updated_at', 'is_active')

    # колонка 1
    def info_tag_1(self, obj):
        if not (obj.pk and obj.icon):
            return u'<table><tr><td></td><td><b>' + obj.name + '</b><br/>' + obj.smallname + '</td></table>'
        return u'<table><tr><td><img src="' + obj.icon.url + '"  width="32px"/></td><td><b>' + obj.name + '</b><br/>' + obj.smallname + '</td></table>'

    info_tag_1.short_description = _('eps.admin.info_tag_1.short_description')
    info_tag_1.allow_tags = True

    # колонка 2
    def info_tag_2(self, obj):
        if not obj.pk:
            return ''
        return _(
            'eps.admin.info_tag_2 %(currency)s %(commission_percent)s %(commission_min)s %(commission_max)s %(commission_extra)s.') % {
                   'currency': obj.currency.code,
                   'commission_percent': str(obj.commission_percent) + "%", 'commission_min': obj.commission_min,
                   'commission_max': obj.commission_max, 'commission_extra': obj.commission_extra}

    info_tag_2.short_description = _('eps.admin.info_tag_2.short_description')
    info_tag_2.allow_tags = True
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
un1t
@un1t
Можно вынести шаблон отдельно render_to_string
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы