Hello django-users,

I have a unmanaged model, of legacy database, used only to read.

I need to clean the value of a field returned in a annotated query.

I try created a new model field inherits from TextField and override
to_python method to clean the value (remove all html using python-bleach),
and use in a query like:

FooBar.objects.annotate(title=ExpressionWrapper(F('html_title'),
output_field=RemoveHTMLTextField())) .

I expected the method to_python was called, but it does not.

Any idea how to solve this problem?

this is probably wrong, but it was the only way I thought so far....


####
import bleach
from django.db import models
from django.template.defaultfilters import striptags
from django.utils.safestring import mark_safe


class RemoveHTMLTextField(models.TextField):
    def to_python(self, value):
        original_value = super(RemoveHTMLTextField, self).to_python(value)
        striped_str = striptags(original_value)
        return mark_safe(bleach.clean(striped_str))
####




-- 
Fábio C. Barrionuevo da Luz
Palmas - Tocantins - Brasil - América do Sul

http://pythonclub.com.br/

Blog colaborativo sobre Python e tecnologias Relacionadas, mantido
totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e
mandar o pull-request. Leia mais sobre como publicar em README.md e
contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python
ou é útil para quem usa Python? Está esperando o que? Publica logo, que
estou louco para ler...

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAPVjvMZCRffePrUkJ6kZFhcn3x-fpjyMmZaoGd4oAh_ba24j1g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to