Better error message for calling get_next_by_* on unsaved models.
Patch from Marc Fargas. Fixed #7435. git-svn-id: http://code.djangoproject.com/svn/django/trunk@13738 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
506d559876
commit
9802a73e25
|
@ -644,6 +644,8 @@ class Model(object):
|
||||||
return force_unicode(dict(field.flatchoices).get(value, value), strings_only=True)
|
return force_unicode(dict(field.flatchoices).get(value, value), strings_only=True)
|
||||||
|
|
||||||
def _get_next_or_previous_by_FIELD(self, field, is_next, **kwargs):
|
def _get_next_or_previous_by_FIELD(self, field, is_next, **kwargs):
|
||||||
|
if not self.pk:
|
||||||
|
raise ValueError("get_next/get_previous cannot be used on unsaved objects.")
|
||||||
op = is_next and 'gt' or 'lt'
|
op = is_next and 'gt' or 'lt'
|
||||||
order = not is_next and '-' or ''
|
order = not is_next and '-' or ''
|
||||||
param = smart_str(getattr(self, field.attname))
|
param = smart_str(getattr(self, field.attname))
|
||||||
|
|
|
@ -568,3 +568,5 @@ described in :ref:`Field lookups <field-lookups>`.
|
||||||
|
|
||||||
Note that in the case of identical date values, these methods will use the ID
|
Note that in the case of identical date values, these methods will use the ID
|
||||||
as a fallback check. This guarantees that no records are skipped or duplicated.
|
as a fallback check. This guarantees that no records are skipped or duplicated.
|
||||||
|
|
||||||
|
That also means you cannot use those methods on unsaved objects.
|
||||||
|
|
Loading…
Reference in New Issue