Imagine que tenha um form no front onde o usuário irá postar conteúdos html. No admin, conteúdos de usuários serão moderados, contudo não poderão ser editados. Nesse ponto o readonly fields ajuda muito. Mas como exibir o conteúdo html (safe) ao invés das tags?
Simples.
No seu admin.py faça da seguinte forma:
from django.contrib import admin from .models import * class ConteudoAdmin(admin.ModelAdmin): search_fields = ('nome', 'email','titulo','texto') list_display = ('nome', 'email','titulo','arquivo', 'data', 'hora') list_filter = ['data',] date_hierarchy = 'data' readonly_fields = ['nome', 'email','titulo', 'texto_html','arquivo'] exclude = ['texto',] save_on_top = True def texto_html(self, obj): return u'{0}'.format(obj.texto) texto_html.allow_tags = True texto_html.short_description = 'Texto' admin.site.register(Conteudo, ConteudoAdmin)
Note que criei um método para retornar o atributo texto do meu objeto, e permiti ao método que retornasse tags html com o allow_tags = True. Para não ficar repetido, exclui o atributo original do admin com o exclude.
hasta!
Nenhum comentário:
Postar um comentário