Environment: Django 2.2
- Example code:
    from django.template.defaulttags import register
    @register.filter(name='lookup')
    def lookup(value, arg):
        return value.get(arg)
I put this code in a file named template_filters.py in my project folder named portfoliomgr
- No matter where you put your filter code, make sure you have __init__.py in that folder 
- Add that file to libraries section in templates section in your projectfolder/settings.py file. For me, it is portfoliomgr/settings.py 
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')],
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
                'libraries':{
                    'template_filters': 'portfoliomgr.template_filters',
                }
            },
        },
    ]
- In your html code load the library - 
{% load template_filters %}