Convert Date/Time/DateTime form fields to appropriate Graphene types

This commit is contained in:
Samuel Cormier-Iijima 2018-01-08 13:48:47 -05:00 committed by Patrick Arminio
parent 53546a27de
commit bb2d24ec27
No known key found for this signature in database
GPG Key ID: 6F384394A3714144
2 changed files with 22 additions and 6 deletions

View File

@ -2,6 +2,7 @@ from django import forms
from django.forms.fields import BaseTemporalField
from graphene import ID, Boolean, Float, Int, List, String, UUID
from graphene.types.datetime import Date, DateTime, Time
from .forms import GlobalIDFormField, GlobalIDMultipleChoiceField
from .utils import import_single_dispatch
@ -63,6 +64,21 @@ def convert_form_field_to_list(field):
return List(ID, required=field.required)
@convert_form_field.register(forms.DateField)
def convert_form_field_to_date(field):
return Date(description=field.help_text, required=field.required)
@convert_form_field.register(forms.DateTimeField)
def convert_form_field_to_datetime(field):
return DateTime(description=field.help_text, required=field.required)
@convert_form_field.register(forms.TimeField)
def convert_form_field_to_time(field):
return Time(description=field.help_text, required=field.required)
@convert_form_field.register(forms.ModelChoiceField)
@convert_form_field.register(GlobalIDFormField)
def convert_form_field_to_id(field):

View File

@ -23,16 +23,16 @@ def test_should_unknown_django_field_raise_exception():
assert 'Don\'t know how to convert the Django form field' in str(excinfo.value)
def test_should_date_convert_string():
assert_conversion(forms.DateField, graphene.String)
def test_should_date_convert_date():
assert_conversion(forms.DateField, graphene.types.datetime.Date)
def test_should_time_convert_string():
assert_conversion(forms.TimeField, graphene.String)
def test_should_time_convert_time():
assert_conversion(forms.TimeField, graphene.types.datetime.Time)
def test_should_date_time_convert_string():
assert_conversion(forms.DateTimeField, graphene.String)
def test_should_date_time_convert_date_time():
assert_conversion(forms.DateTimeField, graphene.types.datetime.DateTime)
def test_should_char_convert_string():