2011-08-19 5 views
0

У меня есть charfield в моей модели Django, в которой хранятся элементы html, такие как <a href='www.gooogle.com'>Google</a>.Отображение полей HTML в форме администратора в Django

В форме администратора эти поля отображаются внутри ввода текста типа. Мне было интересно, как можно показать фактический HTML вместо того, чтобы иметь его внутри текстового ввода? В приведенном выше примере все, что я хочу, это «Google», так что, когда вы нажимаете на него, он принимает ваш адрес. Я не хочу, чтобы администраторы-администраторы видели HTML-разметки.

Обратите внимание, что я уже достиг этого в списке администраторов, используя list_display. Мне нужно сделать ту же функциональность в форме деталей.

Заранее спасибо

ответ

1

Я нашел решение, создавая свой собственный виджет.

class HtmlWidget(widgets.Widget): 
    """A widget to display HTML in admin fields.""" 

    input_type = None # Subclasses must define this. 

    def render(self, name, value, attrs=None): 
    if value is None: 
     value = '' 
    return mark_safe(u'%s' % value) 
Смежные вопросы