From 62eadbc17468b079b2da40ef151b190202e98b1d Mon Sep 17 00:00:00 2001 From: Gram Date: Fri, 20 Jul 2018 17:21:57 +0300 Subject: [PATCH] +date field --- mongoengine/fields.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/mongoengine/fields.py b/mongoengine/fields.py index a661874a..d631e882 100644 --- a/mongoengine/fields.py +++ b/mongoengine/fields.py @@ -525,6 +525,22 @@ class DateTimeField(BaseField): return super(DateTimeField, self).prepare_query_value(op, self.to_mongo(value)) +class DateField(DateTimeField): + def to_mongo(self, value): + value = super(DateField, self).to_mongo(value) + # drop hours, minutes, seconds + if isinstance(value, datetime.datetime): + value = datetime.datetime(value.year, value.month, value.day) + return value + + def to_python(self, value): + value = super(DateField, self).to_python(value) + # convert datetime to date + if isinstance(value, datetime.datetime): + value = datetime.date(value.year, value.month, value.day) + return value + + class ComplexDateTimeField(StringField): """ ComplexDateTimeField handles microseconds exactly instead of rounding