mirror of
https://github.com/graphql-python/graphene-django.git
synced 2025-02-04 13:40:35 +03:00
Added duration field and improved UUID conversion
This commit is contained in:
parent
459270cc09
commit
8136223bb1
|
@ -5,9 +5,11 @@ class MissingType(object):
|
|||
pass
|
||||
|
||||
try:
|
||||
DurationField = models.DurationField
|
||||
UUIDField = models.UUIDField
|
||||
except AttributeError:
|
||||
# Improved compatibility for Django 1.6
|
||||
DurationField = MissingType
|
||||
UUIDField = MissingType
|
||||
|
||||
try:
|
||||
|
|
|
@ -10,7 +10,7 @@ from graphene.utils.str_converters import to_const
|
|||
from graphql import assert_valid_name
|
||||
|
||||
from .compat import (ArrayField, HStoreField, JSONField, RangeField,
|
||||
RelatedObject, UUIDField)
|
||||
RelatedObject, UUIDField, DurationField)
|
||||
from .fields import get_connection_field, DjangoListField
|
||||
from .utils import get_related_model, import_single_dispatch
|
||||
|
||||
|
@ -71,12 +71,12 @@ def convert_django_field(field, registry=None):
|
|||
@convert_django_field.register(models.URLField)
|
||||
@convert_django_field.register(models.GenericIPAddressField)
|
||||
@convert_django_field.register(models.FileField)
|
||||
@convert_django_field.register(UUIDField)
|
||||
def convert_field_to_string(field, registry=None):
|
||||
return String(description=field.help_text, required=not field.null)
|
||||
|
||||
|
||||
@convert_django_field.register(models.AutoField)
|
||||
@convert_django_field.register(UUIDField)
|
||||
def convert_field_to_id(field, registry=None):
|
||||
return ID(description=field.help_text, required=not field.null)
|
||||
|
||||
|
@ -102,6 +102,7 @@ def convert_field_to_nullboolean(field, registry=None):
|
|||
|
||||
@convert_django_field.register(models.DecimalField)
|
||||
@convert_django_field.register(models.FloatField)
|
||||
@convert_django_field.register(DurationField)
|
||||
def convert_field_to_float(field, registry=None):
|
||||
return Float(description=field.help_text, required=not field.null)
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ from graphene.types.datetime import DateTime
|
|||
from graphene.types.json import JSONString
|
||||
|
||||
from ..compat import (ArrayField, HStoreField, JSONField, MissingType,
|
||||
RangeField)
|
||||
RangeField, UUIDField, DurationField)
|
||||
from ..converter import convert_django_field, convert_django_field_with_choices
|
||||
from ..registry import Registry
|
||||
from ..types import DjangoObjectType
|
||||
|
@ -80,6 +80,16 @@ def test_should_auto_convert_id():
|
|||
assert_conversion(models.AutoField, graphene.ID, primary_key=True)
|
||||
|
||||
|
||||
@pytest.mark.skipif(UUIDField == MissingType, reason="requires Django UUIDField")
|
||||
def test_should_auto_convert_id():
|
||||
assert_conversion(UUIDField, graphene.ID)
|
||||
|
||||
|
||||
@pytest.mark.skipif(DurationField == MissingType, reason="requires Django DurationField")
|
||||
def test_should_auto_convert_duration():
|
||||
assert_conversion(DurationField, graphene.Float)
|
||||
|
||||
|
||||
def test_should_positive_integer_convert_int():
|
||||
assert_conversion(models.PositiveIntegerField, graphene.Int)
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user