Ross Lawley
fd7f882011
Save no longer tramples over documents now sets or unsets explicit fields.
...
Fixes #146 , refs #18
Thanks @zhangcheng for the initial code
2011-06-09 16:09:06 +01:00
Ross Lawley
fb09fde209
Updated changelog
2011-06-09 14:26:52 +01:00
Ross Lawley
b2848b8519
Added ComplexDateTimeField
...
Thanks to @pelletier for the code.
Refs #187
2011-06-09 14:20:21 +01:00
Ross Lawley
417bb1b35d
Added regression test for #185
2011-06-09 12:15:36 +01:00
Ross Lawley
199b4eb860
Added django_tests and regression test for order_by
...
Refs #190
2011-06-09 12:08:37 +01:00
Ross Lawley
a66417e9d0
pep8 update
2011-06-09 11:31:47 +01:00
Ross Lawley
b9255f73c3
Updated docs
2011-06-09 11:28:57 +01:00
Ross Lawley
4b9bacf731
Added ComplexBaseField
...
* Handles the efficient lazy dereferencing of DBrefs.
* Handles complex nested values in ListFields and DictFields
* Allows for both strictly declared ListFields and DictFields where the embedded
value must be of a field type or no restrictions where the values can be a mix
of field types / values.
* Handles DBrefences of documents where allow_inheritance = False.
2011-06-09 11:25:24 +01:00
Ross Lawley
602d7dad00
Improvements to Abstract Base Classes
...
Added test example highlighting what to do to migrate a class from
complex (allows inheritance) to simple.
2011-06-08 17:10:26 +01:00
Ross Lawley
d32dd9ff62
Added _get_FIELD_display() for handy choice field display lookups
...
closes #188
2011-06-08 13:07:08 +01:00
Ross Lawley
28b7ef2304
Merge remote branch 'origin/dev' into dev
2011-06-08 13:06:47 +01:00
Ross Lawley
6dc2672dba
Updated changelog
2011-06-08 13:03:42 +01:00
Ross Lawley
9a949984ee
Merge pull request #189 from colinhowe/dev-notypesindex
...
Thanks @colinhowe!
2011-06-08 04:40:54 -07:00
Ross Lawley
3c88faa889
Updated slave_okay syntax
...
Now inline with .timeout() and .snapshot().
Made them chainable - so its easier to use and added tests for cursor_args
2011-06-08 12:06:26 +01:00
Ross Lawley
d15f5ccbf4
Added _slave_okay to clone
2011-06-08 10:41:08 +01:00
Ross Lawley
cfcd77b193
Added tests displaying datetime behaviour.
...
Updated datetimefield documentation
2011-06-08 10:33:56 +01:00
Ross Lawley
525c25b9f6
Merge branch 'master' into dev
2011-06-07 15:15:06 +01:00
Ross Lawley
c059ad47f2
Updated django docs refs #186
2011-06-07 15:14:41 +01:00
Ross Lawley
48fd6c1344
Merge remote branch 'origin/master' into dev
2011-06-07 14:38:04 +01:00
Ross Lawley
1ee50922d9
Merge pull request #186 from kuno/master
...
fixed import path typo in django document
2011-06-07 06:37:34 -07:00
Ross Lawley
711db45c02
Changelist updated
2011-06-06 14:36:44 +01:00
Ross Lawley
55e20bda12
Added slave_okay syntax to querysets.
...
* slave_okay (optional): if True, allows this query to be run against a replica secondary.
2011-06-06 14:35:46 +01:00
Ross Lawley
56f00a64d7
Added bulk insert method.
...
Updated changelog and added tests / query_counter tests
2011-06-06 12:37:06 +01:00
Ross Lawley
8553022b0e
Merge branch 'dev' into feature/dev-indexes
2011-06-06 11:40:21 +01:00
Ross Lawley
74b5043ef9
Added signals documentation
2011-06-06 11:39:58 +01:00
Ross Lawley
0e45078116
Added Blinker signal support
2011-06-06 11:34:43 +01:00
Ross Lawley
7e87ed79ab
Merge branch 'feature/blinker_signals' into dev
2011-06-06 11:10:12 +01:00
Ross Lawley
7312db5c25
Updated docs / authors.
...
Thanks @jorgebastida for the awesome query_counter test context manager.
2011-06-06 11:07:27 +01:00
Ross Lawley
ec7effa0ef
Added DereferenceBaseField class
...
Handles the lazy dereferencing of all items in a list / dict.
Improves query efficiency by an order of magnitude.
2011-06-06 11:04:06 +01:00
Ross Lawley
5d778648e6
Inital tests for dereferencing improvements
2011-05-27 11:33:40 +01:00
Ross Lawley
c903af032f
Added inline_map_reduce functionality
...
Also added map_reduce method for calculating item_frequencies
Closes #183
2011-05-26 15:44:43 +01:00
Ross Lawley
9dd3504765
Updated changelog
2011-05-26 11:56:56 +01:00
Ross Lawley
97a1310344
Tweakin test
2011-05-26 11:11:00 +01:00
Ross Lawley
5ab13518db
Added test confirming order_by reference field doesnt work
2011-05-25 13:50:52 +01:00
Ross Lawley
eb892241ee
Added regression test for editting embedded documents
...
Closes #35
2011-05-25 13:31:01 +01:00
Ross Lawley
fac3f038a8
Added regression test for issue with unset and pop
...
Closes #118
2011-05-25 12:20:56 +01:00
Ross Lawley
b1cdd1eb26
Updated docs regarding ReferenceFields
...
Closes #149
2011-05-25 12:01:41 +01:00
Ross Lawley
60c8254f58
Tweaks to item_frequencies
...
Updated to use a ternary statement and added tests
Refs #124 #122
Thanks to @nickvlku for the code.
2011-05-25 11:10:42 +01:00
Ross Lawley
2ce70448b0
Merge branch 'dev' into pull_124
2011-05-25 09:54:56 +01:00
Ross Lawley
3861103585
Updated connection exception to provide more info on the cause.
...
Fixes #178
2011-05-25 09:36:25 +01:00
Ross Lawley
0708d1bedc
Run all tests...
2011-05-25 09:34:50 +01:00
Ross Lawley
c3a8840435
Blinker signals added
2011-05-24 20:27:19 +01:00
Ross Lawley
3246cf8bdd
Merge pull request #177 from sbook/feature/update_lists
...
Added the ability to update individual items in ListFields.
Example:
Message.objects(pk=12).update(set__comments__5__body="Testing 123")
2011-05-24 06:13:10 -07:00
Ross Lawley
7ecf84395a
Improved DictFields
...
Allow searching multiple levels deep in DictFields
Allow DictField entries containing strings to use matching operators
Thanks again to @theojulien for the initial code #108
2011-05-24 14:07:58 +01:00
Ross Lawley
32bab13a8a
Added MapField, similar to DictField
...
Similar to DictField except the value of each entry is always of a certain
(declared) field type.
Thanks again to @theojulienne for the code #108
2011-05-24 12:50:48 +01:00
Ross Lawley
088c40f9f2
Added Abstract Base Classes
...
Thanks to @theojulienne for the code :) #108
2011-05-24 12:30:12 +01:00
Ross Lawley
1126c85903
Added Custom Objects Managers
...
Managers can now be directly declared in a Document eg::
```python
class CustomQuerySetManager(QuerySetManager):
@staticmethod
def get_queryset(doc_cls, queryset):
return queryset(is_published=True)
class Post(Document):
is_published = BooleanField(default=False)
published = CustomQuerySetManager()
```
Refactored the name of the `_manager_func` to `get_queryset` to mark it as
part the public API. If declaring a Manager with a get_queryset method, it
should be a staticmethod, that accepts the document_class and the queryset.
Note - you can still use decorators in fact in the example below,
we effectively do the same thing as the first example and is much less verbose.
```python
class Post(Document):
is_published = BooleanField(default=False)
@queryset_manager
def published(doc_cls, queryset):
return queryset(is_published=True)
```
Thanks to @theojulienne for the initial impetus and code sample #108
2011-05-24 11:26:46 +01:00
Ross Lawley
1b72ea9cc1
Fixed detection of unique=True in embedded documents.
...
Added some more test cases - thanks to @heyman for the initial
test case.
Closes #172
Refs #171
2011-05-20 16:09:03 +01:00
Ross Lawley
04953351f1
Merge branch 'feature/slicing_fields' into dev
2011-05-20 14:18:48 +01:00
Ross Lawley
07e71d9ce9
Regression test for collection names an primary ordering
...
Closes #91
2011-05-20 14:18:16 +01:00
Ross Lawley
5f53cda3ab
Added regression test for #94
2011-05-20 10:55:01 +01:00
Ross Lawley
9260ff9e83
Updated docs and added a NotRegistered exception
...
For handling GenericReferences that reference documents that haven't
been imported.
Closes #170
2011-05-20 10:22:22 +01:00
Ross Lawley
08d1689268
Updated to handle the converntional api style for slicing a field
...
Added testcase to demonstrate embedded slicing as well.
Refs #167
2011-05-20 09:47:41 +01:00
Ross Lawley
40b69baa29
Implementing Write Concern
...
Added write_options dict to save, update, update_one and get_or_create.
Thanks to justquick for the initial ticket and code.
Refs #132
2011-05-19 16:49:00 +01:00
Ross Lawley
b3251818cc
Added regression test for custom queryset ordering
...
Closes #126
2011-05-19 13:04:14 +01:00
Ross Lawley
da8a057ede
Added test showing documents can be pickled
...
Refs #135
2011-05-19 12:41:38 +01:00
Ross Lawley
efba9ef52a
Merge remote branch 'srackham/gridfs-read-seek' into gridfs-read-seek
2011-05-19 10:14:51 +01:00
Ross Lawley
fb61c9a765
Regression test for mysterious uniqueness constraint when inserting into mongoengine
...
Closes #143 Thanks to tfausak for the test case.
2011-05-19 09:55:34 +01:00
Ross Lawley
95c2643f63
Added test showing primary=True behaviour.
...
If you set a field as primary, then unexpected behaviour can occur.
You won't create a duplicate but you will update an existing document.
Closes #138
2011-05-18 20:31:28 +01:00
Ross Lawley
fc2aff342b
Unique indexes are created before user declared indexes
...
This ensures that indexes are created with the unique flag, if a user
declares the index, that would automatically be declared by the `unique_indexes`
logic.
Thanks to btubbs for the test case.
Fixes #129
2011-05-18 17:37:41 +01:00
Ross Lawley
371dbf009f
Updated QuerySet to allow more granular fields control.
...
Added a fields method and tests showing the retrival of subranges of
List Fields.
Refs #167
2011-05-18 16:39:19 +01:00
Ross Lawley
5d5a84dbcf
Spacing issue cleaned up
2011-05-18 16:24:35 +01:00
Ross Lawley
7526272f84
Added test example of updating an embedded field
...
Closes #139
2011-05-18 12:27:33 +01:00
Ross Lawley
5cbc76ea81
Pep8
2011-05-18 12:26:51 +01:00
Ross Lawley
7ba40062d3
Fixes ordering with custom db field names
...
Closes #125
2011-05-18 12:18:33 +01:00
Ross Lawley
1781c4638b
Changed how the connection identity key is made
...
Uses the current thread identity as well as the process idenity to form
the key.
Fixes #151
2011-05-18 11:41:23 +01:00
Ross Lawley
1a049ee49d
Added regression test case for mongoengine/issues/155
2011-05-18 11:06:14 +01:00
Ross Lawley
31521ccff5
Added queryset clone support and tests, thanks to hensom
...
Fixes #130
2011-05-18 10:30:07 +01:00
Ross Lawley
e3b4563c2b
Merge remote branch 'hensom/master' into dev
2011-05-18 10:06:16 +01:00
Ross Lawley
c3f5ed0e0e
Merge branch 'master' into dev
2011-05-18 10:06:02 +01:00
Ross Lawley
378b52321b
Merge commit '18baa2dd7a4e909169b694cb6ec36214c5a51506'
2011-05-18 09:17:05 +01:00
Ross Lawley
98436f271e
Merge branch 'master' into dev
2011-05-18 08:13:58 +01:00
Ross Lawley
a76008e440
Merge pull request #164 from glyphobet/master
...
spherical geospatial operators.
Thanks again to glyphobet
2011-05-16 08:18:22 -07:00
Ross Lawley
bd3340c73f
Merge pull request #162 from glyphobet/master
...
Comments in unit tests should say "degrees," not "miles":
MongoDB docs are confusing, only the spherical queries $nearSphere and $centerSphere use radians. The $near and $center queries, which are the ones that are used in these mongoengine tests, use the same units as the coordinates. For distances on the earth, this means they use degrees. (This is also why the 2d indexes can be used for other 2d data, not just points on the earth.)
Here's a mongo shell session demonstrating that $near and $center use degrees, and that $nearSphere and $centerSphere are the ones that use radians: https://gist.github.com/964126
So, these mongoengine tests are using $near and $center, which use degrees, not miles, kilometers, or radians.
Thanks glyphobet for the clarification and taking time to explain it!
2011-05-10 02:15:17 -07:00
Ross Lawley
e9ad04f763
Merge pull request #160 from Ankhbayar/master
...
Added __hash__, __ne__ with test.
Thanks Ankhbayar
2011-05-09 02:28:41 -07:00
Ross Lawley
f0277736e2
Updated queryset to handle latest version of pymongo
...
map_reduce now requires an output.
Reverted previous _lookup_field change, until a test case
is produced for the incorrect behaviour.
2011-05-09 10:22:37 +01:00
Ross Lawley
49c978ad9e
Merge remote branch 'upstream/master'
2011-05-09 09:01:19 +01:00