mirror of
https://github.com/django/django.git
synced 2025-10-25 06:36:07 +00:00
Fixed #10082 -- Modified BaseFormSet so that ordering checks work when the formset is empty. Thanks to Petr Marhoun for the report and test case, and bmathieu for the fix.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10643 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
@@ -170,18 +170,18 @@ class BaseFormSet(StrAndUnicode):
|
||||
# don't add data marked for deletion to self.ordered_data
|
||||
if self.can_delete and form.cleaned_data[DELETION_FIELD_NAME]:
|
||||
continue
|
||||
# A sort function to order things numerically ascending, but
|
||||
# None should be sorted below anything else. Allowing None as
|
||||
# a comparison value makes it so we can leave ordering fields
|
||||
# blamk.
|
||||
def compare_ordering_values(x, y):
|
||||
if x[1] is None:
|
||||
return 1
|
||||
if y[1] is None:
|
||||
return -1
|
||||
return x[1] - y[1]
|
||||
self._ordering.append((i, form.cleaned_data[ORDERING_FIELD_NAME]))
|
||||
# After we're done populating self._ordering, sort it.
|
||||
# A sort function to order things numerically ascending, but
|
||||
# None should be sorted below anything else. Allowing None as
|
||||
# a comparison value makes it so we can leave ordering fields
|
||||
# blamk.
|
||||
def compare_ordering_values(x, y):
|
||||
if x[1] is None:
|
||||
return 1
|
||||
if y[1] is None:
|
||||
return -1
|
||||
return x[1] - y[1]
|
||||
self._ordering.sort(compare_ordering_values)
|
||||
# Return a list of form.cleaned_data dicts in the order spcified by
|
||||
# the form data.
|
||||
|
||||
Reference in New Issue
Block a user