寻找一种在Django admin中显示代码块的简单方法

时间:2016-06-06 11:10:35

标签: python django django-templates django-admin

我正在寻找一种在Django admin中显示代码块(即显示标记片段)的方法。我一直在挖掘一段时间,而我目前的(非工作)方法是:

from django.template import Context, loader

class EventAdmin(admin.ModelAdmin):
    list_display = ('name', 'date')
    ordering = ('-date',)
    readonly_fields = ('markup',)

    def markup(self, instance):
        return create_markup(instance)

def create_markup(event):
    template = loader.get_template('event-markup.html')
    return template.render({'event': event})

模板'event-markup.html'很简单,就像:

<h1>Hello, {{ event.name }}</h1>

这似乎很接近,因为它适当地显示了模板,但是应用了样式:

enter image description here

相反,我希望它像这样显示源标记:

enter image description here

有办法做到这一点吗?

1 个答案:

答案 0 :(得分:3)

尝试转义create_markup方法的输出。

from django.utils.html import escape

def create_markup(event):
    output = ...
    return escape(output)