diff --git a/elasticapm/contrib/django/client.py b/elasticapm/contrib/django/client.py
index <HASH>..<HASH> 100644
--- a/elasticapm/contrib/django/client.py
+++ b/elasticapm/contrib/django/client.py
@@ -156,7 +156,7 @@ class DjangoClient(Client):
         return result
 
     def get_data_from_response(self, response):
-        result = {'status_code': str(response.status_code)}
+        result = {'status_code': response.status_code}
 
         # Django does not expose a public API to iterate over the headers of a response.
         # Unfortunately, we have to access the private _headers dictionary here, which is
diff --git a/tests/contrib/django/django_tests.py b/tests/contrib/django/django_tests.py
index <HASH>..<HASH> 100644
--- a/tests/contrib/django/django_tests.py
+++ b/tests/contrib/django/django_tests.py
@@ -656,7 +656,7 @@ class DjangoClientTest(TestCase):
 
         assert 'response' in transaction['context']
         response = transaction['context']['response']
-        assert response['status_code'] == '200'
+        assert response['status_code'] == 200
         assert response['headers']['my-header'] == 'foo'
 
     def test_transaction_metrics(self):
don't coerce status code to string (#<I>)

fixes #<I>