from django.db import models


class MissingType(object):
    pass


try:
    DurationField = models.DurationField
    UUIDField = models.UUIDField
except AttributeError:
    # Improved compatibility for Django 1.6
    DurationField = MissingType
    UUIDField = MissingType

try:
    from django.db.models.related import RelatedObject
except:
    # Improved compatibility for Django 1.6
    RelatedObject = MissingType


try:
    # Postgres fields are only available in Django 1.8+
    from django.contrib.postgres.fields import ArrayField, HStoreField, RangeField
except ImportError:
    ArrayField, HStoreField, JSONField, RangeField = (MissingType, ) * 4


try:
    # Postgres fields are only available in Django 1.9+
    from django.contrib.postgres.fields import JSONField
except ImportError:
    JSONField = MissingType