Opened 16 years ago

Closed 16 years ago

Last modified 16 years ago

#6048 closed (worksforme)

compile_filter() does not allow quote escaping for constant strings

Reported by: miracle2k Owned by: nobody
Component: Template system Version: dev
Severity: Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

{{ "abc \" def" }}
{% mytag with value="abc \" def" %}

In both cases, Parser.compile_filter().resolve() will return the string as

abc \" def

Actually, FilterExpression.init() in django.template, which does the parsing, calls

constant_arg.replace(r'\"', '"'))

when resolving the filter part of the expression - but not for the variable part.

A workaround is:

0|default:"abc \" def"

Change History (2)

comment:1 by Chris Beaven, 16 years ago

Resolution: worksforme
Status: newclosed

Seems to work for me...

>>> from django.template import *
>>> c = Context()
>>> t = Template(r'{{ "test \" me" }}')
>>> t.render(c)
u'test " me'

Want to make up some tests which show your problem and reopen?

comment:2 by Malcolm Tredinnick, 16 years ago

I'm fairly sure that the difference between the original reporter's observation and Chris' is because the latter's checkout is more up to date. This was only fixed in [6724] (a few hours ago).

Note: See TracTickets for help on using tickets.
Back to Top