Skip to content

Commit ddc7882

Browse files
committed
Add supports to encode date objects
1 parent ee34288 commit ddc7882

File tree

2 files changed

+13
-3
lines changed

2 files changed

+13
-3
lines changed

django_ajax/encoder.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from __future__ import unicode_literals
55

66
import json
7-
7+
from datetime import date
88
from django.http.response import HttpResponseRedirectBase, HttpResponse
99
from django.template.response import TemplateResponse
1010
from django.utils.encoding import force_text
@@ -45,6 +45,9 @@ def default(self, obj):
4545
if isinstance(obj, Decimal):
4646
return float(obj)
4747

48+
if isinstance(obj, date):
49+
return obj.isoformat()
50+
4851
return super(LazyJSONEncoderMixin, self).default(obj)
4952

5053

tests/example/tests.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,19 @@
11
from __future__ import unicode_literals
2+
from datetime import datetime
23
from django.test import TestCase
34
from django.utils import six
4-
5+
from django_ajax.encoder import LazyJSONEncoder
56
import json
67

78

9+
class LazyJSONEncoderMixinTestCase(TestCase):
10+
def test_default_date(self):
11+
data = {'datetime': datetime.today()}
12+
self.assertEqual('{"datetime": "' + data['datetime'].isoformat() + '"}', json.dumps(data, cls=LazyJSONEncoder))
13+
14+
815
class BaseTestCase(TestCase):
9-
def post(self, uri, data={}):
16+
def post(self, uri, data=None):
1017
response = resp = self.client.get(uri, data, HTTP_X_REQUESTED_WITH='XMLHttpRequest')
1118

1219
self.assertEquals(200, resp.status_code)

0 commit comments

Comments
 (0)