Fix #864: ComplexDateTimeField should fall back to None when null=True
This commit is contained in:
parent
baf79dda21
commit
ce9d0d7e82
1
AUTHORS
1
AUTHORS
@ -216,3 +216,4 @@ that much better:
|
|||||||
* Mikhail Moshnogorsky (https://github.com/mikhailmoshnogorsky)
|
* Mikhail Moshnogorsky (https://github.com/mikhailmoshnogorsky)
|
||||||
* Diego Berrocal (https://github.com/cestdiego)
|
* Diego Berrocal (https://github.com/cestdiego)
|
||||||
* Matthew Ellison (https://github.com/seglberg)
|
* Matthew Ellison (https://github.com/seglberg)
|
||||||
|
* Jimmy Shen (https://github.com/jimmyshen)
|
||||||
|
@ -5,6 +5,7 @@ Changelog
|
|||||||
|
|
||||||
Changes in 0.9.X - DEV
|
Changes in 0.9.X - DEV
|
||||||
======================
|
======================
|
||||||
|
- ComplexDateTimeField should fall back to None when null=True #864
|
||||||
- Request Support for $min, $max Field update operators #863
|
- Request Support for $min, $max Field update operators #863
|
||||||
- `BaseDict` does not follow `setdefault` #866
|
- `BaseDict` does not follow `setdefault` #866
|
||||||
- Add support for $type operator # 766
|
- Add support for $type operator # 766
|
||||||
@ -76,7 +77,6 @@ Changes in 0.9.X - DEV
|
|||||||
- Make `in_bulk()` respect `no_dereference()` #775
|
- Make `in_bulk()` respect `no_dereference()` #775
|
||||||
- Handle None from model __str__; Fixes #753 #754
|
- Handle None from model __str__; Fixes #753 #754
|
||||||
|
|
||||||
|
|
||||||
Changes in 0.8.7
|
Changes in 0.8.7
|
||||||
================
|
================
|
||||||
- Calling reload on deleted / nonexistent documents raises DoesNotExist (#538)
|
- Calling reload on deleted / nonexistent documents raises DoesNotExist (#538)
|
||||||
|
@ -510,7 +510,7 @@ class ComplexDateTimeField(StringField):
|
|||||||
def __get__(self, instance, owner):
|
def __get__(self, instance, owner):
|
||||||
data = super(ComplexDateTimeField, self).__get__(instance, owner)
|
data = super(ComplexDateTimeField, self).__get__(instance, owner)
|
||||||
if data is None:
|
if data is None:
|
||||||
return datetime.datetime.now()
|
return None if self.null else datetime.datetime.now()
|
||||||
if isinstance(data, datetime.datetime):
|
if isinstance(data, datetime.datetime):
|
||||||
return data
|
return data
|
||||||
return self._convert_from_string(data)
|
return self._convert_from_string(data)
|
||||||
|
@ -2760,6 +2760,12 @@ class InstanceTest(unittest.TestCase):
|
|||||||
class User(Document):
|
class User(Document):
|
||||||
name = StringField()
|
name = StringField()
|
||||||
height = IntField(default=184, null=True)
|
height = IntField(default=184, null=True)
|
||||||
|
str_fld = StringField(null=True)
|
||||||
|
int_fld = IntField(null=True)
|
||||||
|
flt_fld = FloatField(null=True)
|
||||||
|
dt_fld = DateTimeField(null=True)
|
||||||
|
cdt_fld = ComplexDateTimeField(null=True)
|
||||||
|
|
||||||
User.objects.delete()
|
User.objects.delete()
|
||||||
u = User(name='user')
|
u = User(name='user')
|
||||||
u.save()
|
u.save()
|
||||||
@ -2767,6 +2773,12 @@ class InstanceTest(unittest.TestCase):
|
|||||||
u_from_db.height = None
|
u_from_db.height = None
|
||||||
u_from_db.save()
|
u_from_db.save()
|
||||||
self.assertEquals(u_from_db.height, None)
|
self.assertEquals(u_from_db.height, None)
|
||||||
|
# 864
|
||||||
|
self.assertEqual(u_from_db.str_fld, None)
|
||||||
|
self.assertEqual(u_from_db.int_fld, None)
|
||||||
|
self.assertEqual(u_from_db.flt_fld, None)
|
||||||
|
self.assertEqual(u_from_db.dt_fld, None)
|
||||||
|
self.assertEqual(u_from_db.cdt_fld, None)
|
||||||
|
|
||||||
# 735
|
# 735
|
||||||
User.objects.delete()
|
User.objects.delete()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user