﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
32526	Class based custom template filters seem to be broken since Django 2.0	884756834	nobody	"In Django 1.10, writing a custom template filter using a class used to work:

{{{
#!div style=""font-size: 80%""
Code highlighting:
  {{{#!python
class MyCustomFilter(object):
    __name__ = 'custom_filter'

    def __call__(self, value):
        if not isinstance(value, str):
            return value

        return MyHelperClass(value).do_stuff()

custom_filter = MyCustomFilter()
  }}}
}}}

But in Django 2.2 (and likely from 2.0 to 3.1) this seems to raise an error:

{{{django.template.exceptions.TemplateSyntaxError: ""requires 2 arguments, 1 provided""}}}

I believe it is caused by the changes in one of, or both, these 2 commits:

https://github.com/django/django/commit/c2a1af883e18b93a77080650feb9e959536d51ca
https://github.com/django/django/commit/620e9dd31a2146d70de740f96a8cb9a6db054fc7

As a workaround, I've been able to rewrite it:

{{{
#!div style=""font-size: 80%""
Code highlighting:
  {{{#!python
def custom_filter(value):
    if not isinstance(value, str):
        return value

    return MyHelperClass(value).do_stuff()
  }}}
}}}"	Bug	new	Template system	3.1	Normal				Unreviewed	0	0	0	0	0	0
