import xml.etree.ElementTree as et from boards.models import Post TAG_THREAD = 'thread' class PostFilter: def __init__(self, content=None): self.content = content def filter(self, posts): return posts def add_filter(self, model_tag, value): return model_tag class ThreadFilter(PostFilter): def filter(self, posts): op_id = self.content.text op = Post.objects.filter(opening=True, id=op_id).first() if op: return posts.filter(thread=op.get_thread()) else: return posts.none() def add_filter(self, model_tag, value): thread_tag = et.SubElement(model_tag, TAG_THREAD) thread_tag.text = str(value)