|
36 | 36 | from mongoengine.connection import DEFAULT_CONNECTION_NAME, get_db |
37 | 37 | from mongoengine.document import Document, EmbeddedDocument |
38 | 38 | from mongoengine.errors import DoesNotExist, InvalidQueryError, ValidationError |
39 | | -from mongoengine.mongodb_support import MONGODB_36, get_mongodb_version |
40 | 39 | from mongoengine.queryset import DO_NOTHING |
41 | 40 | from mongoengine.queryset.base import BaseQuerySet |
42 | 41 | from mongoengine.queryset.transform import STRING_OPERATORS |
@@ -546,11 +545,11 @@ def to_mongo(self, value): |
546 | 545 | if callable(value): |
547 | 546 | return value() |
548 | 547 |
|
549 | | - if not isinstance(value, str): |
| 548 | + if isinstance(value, str): |
| 549 | + return self._parse_datetime(value) |
| 550 | + else: |
550 | 551 | return None |
551 | 552 |
|
552 | | - return self._parse_datetime(value) |
553 | | - |
554 | 553 | def _parse_datetime(self, value): |
555 | 554 | # Attempt to parse a datetime from a string |
556 | 555 | value = value.strip() |
@@ -913,10 +912,9 @@ class ListField(ComplexBaseField): |
913 | 912 | """ |
914 | 913 |
|
915 | 914 | def __init__(self, field=None, max_length=None, **kwargs): |
916 | | - self.field = field |
917 | 915 | self.max_length = max_length |
918 | 916 | kwargs.setdefault("default", lambda: []) |
919 | | - super().__init__(**kwargs) |
| 917 | + super().__init__(field=field, **kwargs) |
920 | 918 |
|
921 | 919 | def __get__(self, instance, owner): |
922 | 920 | if instance is None: |
@@ -1004,14 +1002,9 @@ class SortedListField(ListField): |
1004 | 1002 | .. versionchanged:: 0.6 - added reverse keyword |
1005 | 1003 | """ |
1006 | 1004 |
|
1007 | | - _ordering = None |
1008 | | - _order_reverse = False |
1009 | | - |
1010 | 1005 | def __init__(self, field, **kwargs): |
1011 | | - if "ordering" in kwargs.keys(): |
1012 | | - self._ordering = kwargs.pop("ordering") |
1013 | | - if "reverse" in kwargs.keys(): |
1014 | | - self._order_reverse = kwargs.pop("reverse") |
| 1006 | + self._ordering = kwargs.pop("ordering", None) |
| 1007 | + self._order_reverse = kwargs.pop("reverse", False) |
1015 | 1008 | super().__init__(field, **kwargs) |
1016 | 1009 |
|
1017 | 1010 | def to_mongo(self, value, use_db_field=True, fields=None): |
@@ -1064,11 +1057,10 @@ class DictField(ComplexBaseField): |
1064 | 1057 | """ |
1065 | 1058 |
|
1066 | 1059 | def __init__(self, field=None, *args, **kwargs): |
1067 | | - self.field = field |
1068 | 1060 | self._auto_dereference = False |
1069 | 1061 |
|
1070 | 1062 | kwargs.setdefault("default", lambda: {}) |
1071 | | - super().__init__(*args, **kwargs) |
| 1063 | + super().__init__(*args, field=field, **kwargs) |
1072 | 1064 |
|
1073 | 1065 | def validate(self, value): |
1074 | 1066 | """Make sure that a list of valid fields is being used.""" |
|
0 commit comments