|
1 | | -from . import djangoflavor |
| 1 | +from mongoengine import fields as _fields |
| 2 | +from . import djangoflavor as _mixins |
| 3 | +from django_mongoengine.utils.monkey import patch_mongoengine_field |
2 | 4 |
|
| 5 | +for f in ["StringField", "ObjectIdField"]: |
| 6 | + patch_mongoengine_field(f) |
3 | 7 |
|
4 | | -def init_module(): |
5 | | - """ |
6 | | - Create classes with Django-flavor mixins, |
7 | | - use DjangoField mixin as default |
8 | | - """ |
9 | | - import sys |
10 | 8 |
|
11 | | - from mongoengine import fields |
| 9 | +class StringField(_mixins.StringField, _fields.StringField): |
| 10 | + pass |
12 | 11 |
|
13 | | - current_module = sys.modules[__name__] |
14 | | - current_module.__all__ = fields.__all__ |
15 | 12 |
|
16 | | - for name in fields.__all__: |
17 | | - fieldcls = getattr(fields, name) |
18 | | - mixin = getattr(djangoflavor, name, djangoflavor.DjangoField) |
19 | | - setattr( |
20 | | - current_module, |
21 | | - name, |
22 | | - type(name, (mixin, fieldcls), {}), |
23 | | - ) |
| 13 | +class URLField(_mixins.URLField, _fields.URLField): |
| 14 | + pass |
24 | 15 |
|
25 | 16 |
|
26 | | -def patch_mongoengine_field(field_name): |
27 | | - """ |
28 | | - patch mongoengine.[field_name] for comparison support |
29 | | - becouse it's required in django.forms.models.fields_for_model |
30 | | - importing using mongoengine internal import cache |
31 | | - """ |
32 | | - from mongoengine import common |
| 17 | +class EmailField(_mixins.EmailField, _fields.EmailField): |
| 18 | + pass |
33 | 19 |
|
34 | | - field = common._import_class(field_name) |
35 | | - for k in ["__eq__", "__lt__", "__hash__", "attname", "get_internal_type"]: |
36 | | - if k not in field.__dict__: |
37 | | - setattr(field, k, djangoflavor.DjangoField.__dict__[k]) |
38 | 20 |
|
| 21 | +class IntField(_mixins.IntField, _fields.IntField): |
| 22 | + pass |
39 | 23 |
|
40 | | -init_module() |
41 | 24 |
|
42 | | -for f in ["StringField", "ObjectIdField"]: |
43 | | - patch_mongoengine_field(f) |
| 25 | +class LongField(_mixins.DjangoField, _fields.LongField): |
| 26 | + pass |
| 27 | + |
| 28 | + |
| 29 | +class FloatField(_mixins.FloatField, _fields.FloatField): |
| 30 | + pass |
| 31 | + |
| 32 | + |
| 33 | +class DecimalField(_mixins.DecimalField, _fields.DecimalField): |
| 34 | + pass |
| 35 | + |
| 36 | + |
| 37 | +class BooleanField(_mixins.BooleanField, _fields.BooleanField): |
| 38 | + pass |
| 39 | + |
| 40 | + |
| 41 | +class DateTimeField(_mixins.DateTimeField, _fields.DateTimeField): |
| 42 | + pass |
| 43 | + |
| 44 | + |
| 45 | +class DateField(_mixins.DjangoField, _fields.DateField): |
| 46 | + pass |
| 47 | + |
| 48 | + |
| 49 | +class ComplexDateTimeField(_mixins.DjangoField, _fields.ComplexDateTimeField): |
| 50 | + pass |
| 51 | + |
| 52 | + |
| 53 | +class EmbeddedDocumentField(_mixins.EmbeddedDocumentField, _fields.EmbeddedDocumentField): |
| 54 | + pass |
| 55 | + |
| 56 | + |
| 57 | +class ObjectIdField(_mixins.DjangoField, _fields.ObjectIdField): |
| 58 | + pass |
| 59 | + |
| 60 | + |
| 61 | +class GenericEmbeddedDocumentField(_mixins.DjangoField, _fields.GenericEmbeddedDocumentField): |
| 62 | + pass |
| 63 | + |
| 64 | + |
| 65 | +class DynamicField(_mixins.DjangoField, _fields.DynamicField): |
| 66 | + pass |
| 67 | + |
| 68 | + |
| 69 | +class ListField(_mixins.ListField, _fields.ListField): |
| 70 | + pass |
| 71 | + |
| 72 | + |
| 73 | +class SortedListField(_mixins.DjangoField, _fields.SortedListField): |
| 74 | + pass |
| 75 | + |
| 76 | + |
| 77 | +class EmbeddedDocumentListField(_mixins.DjangoField, _fields.EmbeddedDocumentListField): |
| 78 | + pass |
| 79 | + |
| 80 | + |
| 81 | +class DictField(_mixins.DictField, _fields.DictField): |
| 82 | + pass |
| 83 | + |
| 84 | + |
| 85 | +class MapField(_mixins.DjangoField, _fields.MapField): |
| 86 | + pass |
| 87 | + |
| 88 | + |
| 89 | +class ReferenceField(_mixins.ReferenceField, _fields.ReferenceField): |
| 90 | + pass |
| 91 | + |
| 92 | + |
| 93 | +class CachedReferenceField(_mixins.DjangoField, _fields.CachedReferenceField): |
| 94 | + pass |
| 95 | + |
| 96 | + |
| 97 | +class LazyReferenceField(_mixins.DjangoField, _fields.LazyReferenceField): |
| 98 | + pass |
| 99 | + |
| 100 | + |
| 101 | +class GenericLazyReferenceField(_mixins.DjangoField, _fields.GenericLazyReferenceField): |
| 102 | + pass |
| 103 | + |
| 104 | + |
| 105 | +class GenericReferenceField(_mixins.DjangoField, _fields.GenericReferenceField): |
| 106 | + pass |
| 107 | + |
| 108 | + |
| 109 | +class BinaryField(_mixins.DjangoField, _fields.BinaryField): |
| 110 | + pass |
| 111 | + |
| 112 | + |
| 113 | +class GridFSError(_mixins.DjangoField, _fields.GridFSError): |
| 114 | + pass |
| 115 | + |
| 116 | + |
| 117 | +class GridFSProxy(_mixins.DjangoField, _fields.GridFSProxy): |
| 118 | + pass |
| 119 | + |
| 120 | + |
| 121 | +class FileField(_mixins.FileField, _fields.FileField): |
| 122 | + pass |
| 123 | + |
| 124 | + |
| 125 | +class ImageGridFsProxy(_mixins.DjangoField, _fields.ImageGridFsProxy): |
| 126 | + pass |
| 127 | + |
| 128 | + |
| 129 | +class ImproperlyConfigured(_mixins.ImproperlyConfigured, _fields.ImproperlyConfigured): |
| 130 | + pass |
| 131 | + |
| 132 | + |
| 133 | +class ImageField(_mixins.ImageField, _fields.ImageField): |
| 134 | + pass |
| 135 | + |
| 136 | + |
| 137 | +class GeoPointField(_mixins.DjangoField, _fields.GeoPointField): |
| 138 | + pass |
| 139 | + |
| 140 | + |
| 141 | +class PointField(_mixins.DjangoField, _fields.PointField): |
| 142 | + pass |
| 143 | + |
| 144 | + |
| 145 | +class LineStringField(_mixins.DjangoField, _fields.LineStringField): |
| 146 | + pass |
| 147 | + |
| 148 | + |
| 149 | +class PolygonField(_mixins.DjangoField, _fields.PolygonField): |
| 150 | + pass |
| 151 | + |
| 152 | + |
| 153 | +class SequenceField(_mixins.DjangoField, _fields.SequenceField): |
| 154 | + pass |
| 155 | + |
| 156 | + |
| 157 | +class UUIDField(_mixins.DjangoField, _fields.UUIDField): |
| 158 | + pass |
| 159 | + |
| 160 | + |
| 161 | +class EnumField(_mixins.DjangoField, _fields.EnumField): |
| 162 | + pass |
| 163 | + |
| 164 | + |
| 165 | +class MultiPointField(_mixins.DjangoField, _fields.MultiPointField): |
| 166 | + pass |
| 167 | + |
| 168 | + |
| 169 | +class MultiLineStringField(_mixins.DjangoField, _fields.MultiLineStringField): |
| 170 | + pass |
| 171 | + |
| 172 | + |
| 173 | +class MultiPolygonField(_mixins.DjangoField, _fields.MultiPolygonField): |
| 174 | + pass |
| 175 | + |
| 176 | + |
| 177 | +class GeoJsonBaseField(_mixins.DjangoField, _fields.GeoJsonBaseField): |
| 178 | + pass |
| 179 | + |
| 180 | + |
| 181 | +class Decimal128Field(_mixins.DjangoField, _fields.Decimal128Field): |
| 182 | + pass |
0 commit comments