from boards.abstracts.settingsmanager import SessionSettingsManager from boards.models import Attachment class AttachmentAlias: def get_image(alias): pass class SessionAttachmentAlias(AttachmentAlias): def __init__(self, session): self.session = session def get_image(self, alias): settings_manager = SessionSettingsManager(self.session) return settings_manager.get_image_by_alias(alias) class ModelAttachmentAlias(AttachmentAlias): def get_image(self, alias): return Attachment.objects.filter(alias=alias).first() def get_image_by_alias(alias, session): image = SessionAttachmentAlias(session).get_image(alias) or ModelAttachmentAlias().get_image(alias) if image is not None: return image