Hi Fábio, Since the deprecation of `SubfieldBase`[1] you must implement a `from_db_value()`[2] method to convert the value as returned by the database to the correct Python object.
Out of curiosity, is there a reason you are doing this the model level? It looks like something that belongs to the form or template layer. Cheers, Simon [1] https://docs.djangoproject.com/en/1.9/releases/1.8/#subfieldbase [2] https://docs.djangoproject.com/en/1.9/ref/models/fields/#django.db.models.Field.from_db_value Le jeudi 31 mars 2016 10:15:38 UTC-4, Fabio Caritas Barrionuevo da Luz a écrit : > > 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/444e33cb-5f81-4339-a751-95e7314e3770%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

