Merge pull request #229 from blag/fix-saving-with-specified-order-value

Fix saving with specified order value
master
Brandon Taylor 2020-07-21 20:29:34 -04:00 committed by GitHub
commit e90dc03b2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 1 deletions

View File

@ -89,7 +89,7 @@ class SortableMixin(models.Model):
def save(self, *args, **kwargs):
needs_default = (self._state.adding if VERSION >= (1, 8) else not self.pk)
if needs_default:
if not getattr(self, self.order_field_name) and needs_default:
try:
current_max = self.__class__.objects.aggregate(
models.Max(self.order_field_name))[self.order_field_name + '__max'] or 0

View File

@ -82,6 +82,11 @@ class SortableTestCase(TestCase):
self.assertTrue(get_is_sortable(Category.objects.all()),
'Category has more than one record. It should be sortable.')
def test_doesnt_overwrite_preexisting_order_field_value(self):
self.create_category()
category = Category.objects.create(title='Category 2', order=5)
self.assertEqual(category.order, 5)
def test_save_order_incremented(self):
category1 = self.create_category()
self.assertEqual(category1.order, 1, 'Category 1 order should be 1.')