From 7449efd2a3273574f9ea6a4e56e3719fe615dd2b Mon Sep 17 00:00:00 2001 From: Rasheed Hamdawi Date: Thu, 24 Dec 2020 13:00:20 +0800 Subject: [PATCH] Fix 1075: serialize datetime value --- graphene_django/views.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/graphene_django/views.py b/graphene_django/views.py index e81f760..46d89ee 100644 --- a/graphene_django/views.py +++ b/graphene_django/views.py @@ -1,6 +1,7 @@ import inspect import json import re +import datetime import six from django.db import connection, transaction @@ -55,6 +56,11 @@ def instantiate_middleware(middlewares): yield middleware +def stringify_datetime(value): + if isinstance(value, datetime.datetime): + return value.__str__() + + class GraphQLView(View): graphiql_template = "graphene/graphiql.html" @@ -240,9 +246,15 @@ class GraphQLView(View): def json_encode(self, request, d, pretty=False): if not (self.pretty or pretty) and not request.GET.get("pretty"): - return json.dumps(d, separators=(",", ":")) + return json.dumps(d, separators=(",", ":"), default=stringify_datetime) - return json.dumps(d, sort_keys=True, indent=2, separators=(",", ": ")) + return json.dumps( + d, + sort_keys=True, + indent=2, + separators=(",", ": "), + default=stringify_datetime, + ) def parse_body(self, request): content_type = self.get_content_type(request)