I am trying to filter through a TextField where I have stripped it of its HTML tags. However, it gives me this error: “Cannot resolve keyword ‘search’ into field.” Here is my code:
models.py
class Entry(models.Model):
body = models.TextField()
def search_body(self):
tags = re.compile('<.*?>')
cleantext = re.sub(tags, '', self.body)
return cleantext
views.py
from django.db.models import Q from .models import Entry ... def search_list(request, query=None): search = "search" entrys = Entry.objects.filter(status="publish").filter(Q(search_body__icontains=search)).distinct()
Is there a way to do this?
Advertisement
Answer
I just found a way to get what I’m aiming at. All I have to do is to override the “save” function, as so:
def save(self, *args, **kwargs):
self.search_body = clean_text(self)
super().save(*args, **kwargs)
Thanks for your help.