Форум сайта python.su
Здравствуйте,
у меня в моделе есть поле TextField, в котором могут попадаться html tags, которые не должны обрабатываться. Но html там экранируется на этапе записи в базу:
from django.db import models
from django.utils.html import escape
class MyModel(models.Model):
text = models.TextField()
def save(self, *args, **kwargs):
self.text = escape(self.text)
super(MyModel, self).save(*args, **kwargs)
Офлайн
В модели
class MyModel(models.Model):
text = models.TextField()
def admin_text(self):
return self.text
class MyModelAdmin(admin.ModelAdmin):
list_display = ('admin_text',)
Отредактировано (Янв. 16, 2012 05:20:47)
Офлайн
не работает. И что-то я не пойму, как оно предположительно должно работать?
list_display предполагает отображение в списке записей, где мне нужно выбрать что-то для редактирования.
Меня же интересует textarea на страничке редактирования. Ее содержимое должно отображаться без экранирования.
Возможно вы меня неправильно поняли?
т.е. в базе у меня такой текст
<b>Lorem</b> ipsum
<b>Lorem</b> ipsum
<textarea>&lt;b&gt;Lorem&lt;/b&gt; ipsum</textarea>
<b>Lorem</b> ipsum
Офлайн
Сохраняйте в базе без своего метода save, в базе всё будет храниться как есть и в админке будет выводиться как вам нужно.
Офлайн
st01en
Так вот, как бы сделать так, что б в django admin при редактировании записи, в textarea для этого поля html не экранировался, а то получается дважды экранируется, а с каждым сейвом все хуже и хуже становиться
хотелось бы именно в админе отключить экранирование для этого поля, т.к. база используется не только в django app.
Офлайн