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 Changes in 0.8.2
================ ================
- Reload forces read preference to be PRIMARY (#355)
- Querysets are now lest restrictive when querying duplicate fields (#332, #333) - Querysets are now lest restrictive when querying duplicate fields (#332, #333)
- FileField now honouring db_alias (#341) - FileField now honouring db_alias (#341)
- Removed customised __set__ change tracking in ComplexBaseField (#344) - Removed customised __set__ change tracking in ComplexBaseField (#344)

View File

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