Merge pull request #885 from DavidBord/fix-864
Fix #864: ComplexDateTimeField should fall back to None when null=True
This commit is contained in:
commit
f42ab957d4
1
AUTHORS
1
AUTHORS
@ -216,3 +216,4 @@ that much better:
|
||||
* Mikhail Moshnogorsky (https://github.com/mikhailmoshnogorsky)
|
||||
* Diego Berrocal (https://github.com/cestdiego)
|
||||
* Matthew Ellison (https://github.com/seglberg)
|
||||
* Jimmy Shen (https://github.com/jimmyshen)
|
||||
|
@ -5,6 +5,7 @@ Changelog
|
||||
|
||||
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
|
||||
- `BaseDict` does not follow `setdefault` #866
|
||||
- Add support for $type operator # 766
|
||||
@ -76,7 +77,6 @@ Changes in 0.9.X - DEV
|
||||
- Make `in_bulk()` respect `no_dereference()` #775
|
||||
- Handle None from model __str__; Fixes #753 #754
|
||||
|
||||
|
||||
Changes in 0.8.7
|
||||
================
|
||||
- Calling reload on deleted / nonexistent documents raises DoesNotExist (#538)
|
||||
|
@ -510,7 +510,7 @@ class ComplexDateTimeField(StringField):
|
||||
def __get__(self, instance, owner):
|
||||
data = super(ComplexDateTimeField, self).__get__(instance, owner)
|
||||
if data is None:
|
||||
return datetime.datetime.now()
|
||||
return None if self.null else datetime.datetime.now()
|
||||
if isinstance(data, datetime.datetime):
|
||||
return data
|
||||
return self._convert_from_string(data)
|
||||
|
@ -2760,6 +2760,12 @@ class InstanceTest(unittest.TestCase):
|
||||
class User(Document):
|
||||
name = StringField()
|
||||
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()
|
||||
u = User(name='user')
|
||||
u.save()
|
||||
@ -2767,6 +2773,12 @@ class InstanceTest(unittest.TestCase):
|
||||
u_from_db.height = None
|
||||
u_from_db.save()
|
||||
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
|
||||
User.objects.delete()
|
||||
|
Loading…
x
Reference in New Issue
Block a user