[Django]-CSRF Middleware – change csrf_token output (from xHTML to HTML)

1πŸ‘

βœ…

You have to go and edit django.template.defaulttags.py: At line 48 there is the output of the tag, and you may change it as you wish.

Please note that this is a development feature, and as such, subject to change – updating Django will likely remove your change!.
Also, please take the time to go look for a ticket about this particular problem: the solution I proposed will likely fix your problem, but I think that an β€œofficial” fix would be a lot nicer.

πŸ‘€Agos

3πŸ‘

Here is my fix to the problem.

{% with csrf_token as csrf_token_clean %}{{ csrf_token_clean }}{% endwith %}

In your template, this will return only the token key, so you can write your own valid HTML input tag, like this.

<input type="hidden" name="csrfmiddlewaretoken" value="{% with csrf_token as csrf_token_clean %}{{ csrf_token_clean }}{% endwith %}" >

Source: http://www.phptodjango.com/2010/07/django-csrftoken-template-tag-fix.html

πŸ‘€Shane Reustle

3πŸ‘

The solution is actually very simple:

<input type="hidden" name="csrfmiddlewaretoken" value="{{ csrf_token }}">

There is no point in {% with %} construct.

πŸ‘€ayanami

Leave a comment