【问题标题】:How to set display text filter in django-admin list_display?如何在 django-admin list_display 中设置显示文本过滤器?
【发布时间】:2013-04-23 19:57:13
【问题描述】:

我有一个包含降价的字段。当我在我的模板中显示它时,我可以输入{{activity.activity_notes|markdown}} 以使其格式正确。但是,当它出现在 Django 管理员中时,它是未经过滤的,看起来不太好。

我编写了一个自定义函数来返回编译后的 markdown,但是在 Django admin 中输出它时,它会显示文字 html、标签和所有内容。有没有办法可以在 Django 管理界面中为字段设置输出过滤器?

【问题讨论】:

    标签: django django-admin


    【解决方案1】:

    只需将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

    【讨论】:

    • 别忘了把get_markedown_activity_notes.allow_tags = True放在你的models.py中,否则Django会转义HTML输出。
    猜你喜欢
    • 2019-06-13
    • 1970-01-01
    • 2020-09-26
    • 2020-12-29
    • 2013-04-28
    • 2020-06-11
    • 2012-01-08
    • 2017-06-08
    • 1970-01-01
    相关资源
    最近更新 更多