#33097 closed Uncategorized (invalid)
Class based simple tag that takes context fails with simple_tag().
Description ¶
django.template.exceptions.TemplateSyntaxError: 'Foo' is decorated with takes_context=True so it must have a first argument of 'context'
class TextTag(Tag): """Return a template tag function for use as a text type tag. e.g. <div class="foo">text text text</div> Can override the 'render' method """ def render(self, context, text, attrs): ... return html def as_template_tag(self, context, text, **attrs): tag = type(self)(self.tag, self.generic_css_class) return tag.render(context, text, attrs)
Used as
heading_section = TextTag('h3', 'HeadingSection').as_template_tag register.simple_tag(heading_section, name='HeadingSection', takes_context=True)
Raises exception:
django.template.exceptions.TemplateSyntaxError: 'HeadingFieldset' is decorated with takes_context=True so it must have a first argument of 'context'
Should This error not be smart enough to see if its a methods, that once bound then context will be the first argument?
Change History (2)
comment:1 by , 3 years ago
Resolution: | → invalid |
---|---|
Status: | new → closed |
comment:2 by , 3 years ago
Summary: | Class based simple tag that takes context fails "must have a first argument of 'context''" → Class based simple tag that takes context fails with simple_tag(). |
---|
Note:
See TracTickets
for help on using tickets.
It's documented that
simple_tag()
accepts functions not methods.