2013-04-23 2 views
0

У меня есть поле, содержащее уценку. Когда я показываю его в своих шаблонах, я могу просто положить {{activity.activity_notes|markdown}}, чтобы получить его в правильном формате. Однако, когда он появляется в администраторе Django, он нефильтрован и не выглядит красивым.Как настроить отображение текстового фильтра в django-admin list_display?

Я написал пользовательскую функцию, чтобы вернуть скомпилированную метку, но при ее выводе в администраторе Django она отображает литерал html, теги и все. Есть ли способ установить выходной фильтр для поля в интерфейсе администратора Django?

ответ

2

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

from django.contrib.markup.templatetags import markdown 

class Activity(models.Model): 
    ... 
    def get_markedown_activity_notes(self): 
     return markdown(self.activity_notes) 

#in admin.py 

class ActivityAdmin(admin.ModelAdmin): 
     list_display = ('id','get_markedown_activity_notes',) 

Для больше случаев использования см documentation

+2

И не забудьте поставить 'get_markedown_activity_notes. allow_tags = True' где-то в ваших models.py, иначе Django будет избегать вывода HTML. –

+0

Это сработало! И спасибо @SantiagoM. Мне тоже это нужно. – bj13

Смежные вопросы