Reload forces read preference to be PRIMARY (#355)

This commit is contained in:
Ross Lawley 2013-06-04 11:03:50 +00:00
parent ee725354db
commit d47134bbf1
2 changed files with 5 additions and 2 deletions

View File

@ -5,6 +5,7 @@ Changelog
Changes in 0.8.2
================
- Reload forces read preference to be PRIMARY (#355)
- Querysets are now lest restrictive when querying duplicate fields (#332, #333)
- FileField now honouring db_alias (#341)
- Removed customised __set__ change tracking in ComplexBaseField (#344)

View File

@ -3,6 +3,7 @@ import warnings
import pymongo
import re
from pymongo.read_preferences import ReadPreference
from bson.dbref import DBRef
from mongoengine import signals
from mongoengine.base import (DocumentMetaclass, TopLevelDocumentMetaclass,
@ -421,8 +422,9 @@ class Document(BaseDocument):
.. versionchanged:: 0.6 Now chainable
"""
id_field = self._meta['id_field']
obj = self._qs.filter(**{id_field: self[id_field]}
).limit(1).select_related(max_depth=max_depth)
obj = self._qs.read_preference(ReadPreference.PRIMARY).filter(
**{id_field: self[id_field]}).limit(1).select_related(max_depth=max_depth)
if obj:
obj = obj[0]
else: