Skip to content

Commit 94ee970

Browse files
authored
Merge pull request #368 from sciyoshi/convert-date-time
Convert Date/Time/DateTime form fields to appropriate Graphene types
2 parents adde400 + bb2d24e commit 94ee970

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

graphene_django/form_converter.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from django.forms.fields import BaseTemporalField
33

44
from graphene import ID, Boolean, Float, Int, List, String, UUID
5+
from graphene.types.datetime import Date, DateTime, Time
56

67
from .forms import GlobalIDFormField, GlobalIDMultipleChoiceField
78
from .utils import import_single_dispatch
@@ -63,6 +64,21 @@ def convert_form_field_to_list(field):
6364
return List(ID, required=field.required)
6465

6566

67+
@convert_form_field.register(forms.DateField)
68+
def convert_form_field_to_date(field):
69+
return Date(description=field.help_text, required=field.required)
70+
71+
72+
@convert_form_field.register(forms.DateTimeField)
73+
def convert_form_field_to_datetime(field):
74+
return DateTime(description=field.help_text, required=field.required)
75+
76+
77+
@convert_form_field.register(forms.TimeField)
78+
def convert_form_field_to_time(field):
79+
return Time(description=field.help_text, required=field.required)
80+
81+
6682
@convert_form_field.register(forms.ModelChoiceField)
6783
@convert_form_field.register(GlobalIDFormField)
6884
def convert_form_field_to_id(field):

graphene_django/tests/test_form_converter.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,18 +23,18 @@ def test_should_unknown_django_field_raise_exception():
2323
assert 'Don\'t know how to convert the Django form field' in str(excinfo.value)
2424

2525

26-
def test_should_date_convert_string():
27-
assert_conversion(forms.DateField, graphene.String)
26+
def test_should_date_convert_date():
27+
assert_conversion(forms.DateField, graphene.types.datetime.Date)
2828

2929

30-
def test_should_time_convert_string():
31-
assert_conversion(forms.TimeField, graphene.String)
30+
def test_should_time_convert_time():
31+
assert_conversion(forms.TimeField, graphene.types.datetime.Time)
3232

3333
def test_should_date_convert_string():
3434
assert_conversion(forms.DateField, graphene.String)
3535

36-
def test_should_date_time_convert_string():
37-
assert_conversion(forms.DateTimeField, graphene.String)
36+
def test_should_date_time_convert_date_time():
37+
assert_conversion(forms.DateTimeField, graphene.types.datetime.DateTime)
3838

3939

4040
def test_should_char_convert_string():

0 commit comments

Comments
 (0)