Skip to content

Commit 98ad5f3

Browse files
authored
Revert "made Browsable API base template cachable: omit CSRF token when unnecessary (#7717)"
This reverts commit 9c9ffb1.
1 parent 9c9ffb1 commit 98ad5f3

File tree

2 files changed

+7
-15
lines changed

2 files changed

+7
-15
lines changed

rest_framework/templates/rest_framework/base.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -290,7 +290,7 @@ <h1>{{ name }}</h1>
290290
<script>
291291
window.drf = {
292292
csrfHeaderName: "{{ csrf_header_name|default:'X-CSRFToken' }}",
293-
csrfToken: "{% if request %}{% if post_form or put_form %}{{ csrf_token }}{% endif %}{% endif %}"
293+
csrfToken: "{% if request %}{{ csrf_token }}{% endif %}"
294294
};
295295
</script>
296296
<script src="{% static "rest_framework/js/jquery-3.5.1.min.js" %}"></script>

tests/test_templates.py

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,15 @@
33
from django.shortcuts import render
44

55

6+
def test_base_template_with_context():
7+
context = {'request': True, 'csrf_token': 'TOKEN'}
8+
result = render({}, 'rest_framework/base.html', context=context)
9+
assert re.search(r'\bcsrfToken: "TOKEN"', result.content.decode())
10+
11+
612
def test_base_template_with_no_context():
713
# base.html should be renderable with no context,
814
# so it can be easily extended.
915
result = render({}, 'rest_framework/base.html')
1016
# note that this response will not include a valid CSRF token
1117
assert re.search(r'\bcsrfToken: ""', result.content.decode())
12-
13-
14-
def test_base_template_with_simple_context():
15-
context = {'request': True, 'csrf_token': 'TOKEN'}
16-
result = render({}, 'rest_framework/base.html', context=context)
17-
# note that response will STILL not include a CSRF token
18-
assert re.search(r'\bcsrfToken: ""', result.content.decode())
19-
20-
21-
def test_base_template_with_editing_context():
22-
context = {'request': True, 'post_form': object(), 'csrf_token': 'TOKEN'}
23-
result = render({}, 'rest_framework/base.html', context=context)
24-
# response includes a CSRF token in support of the POST form
25-
assert re.search(r'\bcsrfToken: "TOKEN"', result.content.decode())

0 commit comments

Comments
 (0)