parent
fb70b47acb
commit
268908b3b2
1
AUTHORS
1
AUTHORS
@ -69,3 +69,4 @@ that much better:
|
||||
* John Arnfield
|
||||
* grubberr
|
||||
* Paul Aliagas
|
||||
* Paul Cunnane
|
||||
|
@ -6,6 +6,7 @@ Changelog
|
||||
Changes in dev
|
||||
==============
|
||||
|
||||
- Improved efficiency of .get()
|
||||
- Updated ComplexFields so if required they won't accept empty lists / dicts
|
||||
- Added spec file for rpm-based distributions
|
||||
- Fixed ListField so it doesnt accept strings
|
||||
|
@ -728,15 +728,17 @@ class QuerySet(object):
|
||||
.. versionadded:: 0.3
|
||||
"""
|
||||
self.__call__(*q_objs, **query)
|
||||
count = self.count()
|
||||
if count == 1:
|
||||
return self[0]
|
||||
elif count > 1:
|
||||
message = u'%d items returned, instead of 1' % count
|
||||
raise self._document.MultipleObjectsReturned(message)
|
||||
else:
|
||||
try:
|
||||
result1 = self[0]
|
||||
except IndexError:
|
||||
raise self._document.DoesNotExist("%s matching query does not exist."
|
||||
% self._document._class_name)
|
||||
try:
|
||||
result2 = self[1]
|
||||
except IndexError:
|
||||
return result1
|
||||
message = u'%d items returned, instead of 1' % self.count()
|
||||
raise self._document.MultipleObjectsReturned(message)
|
||||
|
||||
def get_or_create(self, write_options=None, *q_objs, **query):
|
||||
"""Retrieve unique object or create, if it doesn't exist. Returns a tuple of
|
||||
|
Loading…
x
Reference in New Issue
Block a user