2013-04-23 89 views
0

我有一个包含降价的字段。当我将它显示在我的模板中时,我可以放入{{activity.activity_notes|markdown}}以正确格式化。但是,当它出现在Django管理员中时,它未经过滤,看起来不太好。如何在django-admin list_display中设置显示文本过滤器?

我写了一个自定义函数来返回已编译的markdown,但是当它在Django admin中输出时,它显示了文字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输出。 – 2013-04-23 20:21:07

+0

工作正常!并且谢谢@SantiagoM。我也需要这个。 – bj13 2013-04-23 20:34:07

相关问题