1381 Commits

Author SHA1 Message Date
Ross Lawley
f8904a5504 Explicitly set w:1 if None in save 2013-06-05 12:14:22 +00:00
Ross Lawley
e5648a4af9 ImageFields now include PIL error messages if invalid error (#353) 2013-06-05 11:45:08 +00:00
Ross Lawley
a246154961 Fixed hashing of EmbeddedDocuments (#348) 2013-06-05 11:31:13 +00:00
Ross Lawley
1a54dad643 Filter out index scan for pymongo cache 2013-06-05 10:42:41 +00:00
Ross Lawley
940dfff625 Code cleanup 2013-06-05 09:49:26 +00:00
Ross Lawley
c2b15183cb Merge branch 'master' of github.com:MongoEngine/mongoengine 2013-06-05 09:30:56 +00:00
Ross Lawley
27e8aa9c68 Added comment about why temp debugging exists 2013-06-05 09:30:01 +00:00
Stefan Wojcik
eba81e368b dont use $in for _cls queries with a single subclass 2013-06-04 15:32:23 -07:00
Ross Lawley
eeb5a83e98 Added lock when calling doc.Delete() for when signals have no sender (#350) 2013-06-04 16:35:25 +00:00
Ross Lawley
d47134bbf1 Reload forces read preference to be PRIMARY (#355) 2013-06-04 11:03:50 +00:00
Ross Lawley
ee725354db Querysets are now lest restrictive when querying duplicate fields (#332, #333) 2013-06-04 10:46:38 +00:00
Ross Lawley
985bfd22de Merge remote-tracking branch 'origin/pr/333' into 333 2013-06-04 10:22:54 +00:00
Ross Lawley
0d35e3a3e9 Added debugging for query counter 2013-06-04 10:20:49 +00:00
Ross Lawley
0eafa4acd8 Merge pull request #341 from ichuang/master
FileField now honouring db_alias
2013-06-04 02:58:20 -07:00
Ross Lawley
3b60adc8da Merge pull request #344 from matchbox/complex-change-tracking
Remove custom change tracking for ComplexBaseFields just use BaseField's one
2013-06-04 02:54:59 -07:00
Ross Lawley
626a3369b5 Removed unused var in _get_changed_fields (#347) 2013-06-04 09:51:58 +00:00
Ross Lawley
4244e7569b Added pre_save_post_validation signal (#345) 2013-06-04 09:35:44 +00:00
Ross Lawley
dcd23a0b4d Merge pull request #345 from amcgregor/master
Addition of pre_save_validation and move of pre_save to after validation.
2013-06-04 02:13:25 -07:00
Ross Lawley
5447c6e947 DateTimeField now auto converts valid datetime isostrings into dates (#343) 2013-06-04 09:08:13 +00:00
Ross Lawley
f1b97fbc8b Merge pull request #343 from matchbox/dateutil
if `dateutil` is available, use it to parse datetimes
2013-06-04 01:22:31 -07:00
Ross Lawley
4c8dfc3fc2 Fixed Doc.objects(read_preference=X) not setting read preference (#352) 2013-06-03 15:40:54 +00:00
Ross Lawley
8d2e7b4372 Django session ttl index expiry fixed (#329) 2013-06-03 13:31:35 +00:00
Nigel McNie
4c9e90732e Apply defaults to fields with None value at 'set' time.
If a field has a default, and you explicitly set it to None, the
behaviour before this patch was very confusing:

    class Person(Document):
        created = DateTimeField(default=datetime.datetime.utcnow)

    >>> p = Person(created=None)
    >>> p.created
    datetime.datetime(2013, 5, 30, 0, 18, 20, 242628)
    >>> p.created
    datetime.datetime(2013, 5, 30, 0, 18, 20, 995248)
    >>> p.created
    datetime.datetime(2013, 5, 30, 0, 18, 21, 370578)

It would be stored as None, and then at 'get' time, the default would be
applied. As you can see, if the default is a generator, this leads to some
crazy behaviour.

There's an argument that if I asked it to be set to None, why not respect that?
But I don't think that's how the rest of mongoengine seems to work (for
example, setting a field to None seems to mean it doesn't even get set in mongo
- as opposed to being set but with a 'null' value). Besides, as the code shows
above, you'd expect p.created to return None. So clearly, mongoengine is
already expecting None to mean 'default' where a default is available.

This bug also interacts nastily with required=True - if you're forcibly setting
the field to None, then at validation time, the None will fail validation
despite a perfectly valid default being available.

With this patch, when the field is set, the default is immediately applied.
This means any generation happens once, the getter always returns the same
value, and 'required' validation always respects the default.

Note: this breakage seems to be new since mongoengine 0.8.
2013-05-30 16:37:40 +12:00
Alice Bevan-McGregor
5d44e1d6ca Added missing reference in __all__. 2013-05-29 12:12:51 -04:00
Alice Bevan-McGregor
04592c876b Moved pre_save after validation and determination of creation state; added pre_save_validation where pre_save had been. 2013-05-29 12:04:53 -04:00
Paul Swartz
c0571beec8 fix change tracking for ComplexBaseFields 2013-05-28 17:19:46 -04:00
Paul Swartz
18d8008b89 if dateutil is available, use it to parse datetimes
In particular, this picks up the default `datetime.isoformat()` output, with
a "T" as the separator.
2013-05-28 15:59:32 -04:00
Stefan Wojcik
4670f09a67 fix __set_state__ 2013-05-27 13:48:02 -07:00
ichuang
159ef12ed7 FileField should pass db_alias to GridFSProxy in __set__ call 2013-05-27 11:19:34 -04:00
Stefan Wojcik
774895ec8c dont simplify queries with duplicate conditions 2013-05-23 17:49:28 -07:00
Ross Lawley
c96a1b00cf Documentation cleanup (#328) 2013-05-23 19:09:05 +00:00
Ross Lawley
048c84ab95 Merge branch 'master' of github.com:MongoEngine/mongoengine 2013-05-21 09:12:38 +00:00
Ross Lawley
a7470360d2 Version bump 2013-05-21 09:12:09 +00:00
Ross Lawley
0d37e1cd98 Merge pull request #326 from mitar/importlib-python26
importlib does not exist on Python 2.6. Use Django version.
2013-05-21 00:19:29 -07:00
Ross Lawley
9aa77bb3c9 Fixed pickle unsaved document regression (#327) 2013-05-21 07:07:17 +00:00
Mitar
306f9c5ffd importlib does not exist on Python 2.6. Use Django version. 2013-05-20 17:30:41 -07:00
Ross Lawley
5ef5611682 0.8.0 is a go 2013-05-20 12:34:47 +00:00
Ross Lawley
ebdd2d730c Fixed querying ReferenceField custom_id (#317) 2013-05-20 10:20:43 +00:00
Ross Lawley
56cd73823e Add backwards compat for pickle 2013-05-20 10:09:16 +00:00
Ross Lawley
6299015039 Updated pickling (#316) 2013-05-20 10:04:17 +00:00
Ross Lawley
8165131419 Doc updated 2013-05-20 08:12:09 +00:00
Ross Lawley
e402157b4d Merge remote-tracking branch 'origin/pr/319' 2013-05-20 08:10:37 +00:00
Daniel Axtens
36a3770673 If you need to read from another database, use switch_db not switch_collection. 2013-05-20 15:49:01 +10:00
Wilson Júnior
bc92f78afb fixes for value_decorator 2013-05-16 13:12:49 -03:00
Wilson Júnior
f7e22d2b8b fixes for get_next_value 2013-05-16 13:05:07 -03:00
Wilson Júnior
10e0b1daec Merge branch 'master' of https://github.com/MongoEngine/mongoengine 2013-05-16 12:50:47 -03:00
Wilson Júnior
731d8fc6be added get_next_value to SequenceField 2013-05-16 12:50:34 -03:00
Ross Lawley
b16eabd2b6 Updated version 2013-05-10 15:09:08 +00:00
Ross Lawley
5b498bd8d6 Added no_sub_classes context manager and queryset helper (#312) 2013-05-10 15:05:16 +00:00
Ross Lawley
941042d0ba Merge remote-tracking branch 'origin/pr/312' into 312 2013-05-10 14:44:44 +00:00