@@ -431,10 +431,13 @@ def __init__(self, default_order_direction=None, default_order_field=None, **kwa
431431 self .default_order_direction = default_order_direction
432432 self .default_order_field = default_order_field
433433 if default_order_field :
434- if default_order_field not in self .form .base_fields :
435- self .form .base_fields [default_order_field ] = self .model ._meta .get_field (default_order_field ).formfield ()
434+ if default_order_field in self .form .base_fields :
435+ order_field = self .form .base_fields [default_order_field ]
436+ else :
437+ order_field = self .model ._meta .get_field (default_order_field ).formfield ()
438+ self .form .base_fields [default_order_field ] = order_field
439+ self .form .declared_fields [default_order_field ] = order_field
436440
437- order_field = self .form .base_fields [default_order_field ]
438441 order_field .is_hidden = True
439442 order_field .required = False
440443 order_field .widget = widgets .HiddenInput (attrs = {'class' : '_reorder_' })
@@ -480,13 +483,20 @@ class SortableInlineAdminMixin:
480483 formset = CustomInlineFormSet
481484
482485 def __init__ (self , parent_model , admin_site ):
483- assert isinstance (admin_site ._registry [parent_model ], SortableAdminBase ), \
484- "{} must inherit from SortableAdminBase since {} inherits from SortableInlineAdminMixin." .format (
485- admin_site ._registry [parent_model ], self .__class__ .__name__
486- )
486+ if parent_model in admin_site ._registry :
487+ assert isinstance (admin_site ._registry [parent_model ], SortableAdminBase ), \
488+ "{} must inherit from SortableAdminBase since {} inherits from SortableInlineAdminMixin." .format (
489+ admin_site ._registry [parent_model ], self .__class__ .__name__
490+ )
487491 self .default_order_direction , self .default_order_field = _get_default_ordering (self .model , self )
488492 super ().__init__ (parent_model , admin_site )
489493
494+ def get_fields (self , * args , ** kwargs ):
495+ fields = super ().get_fields (* args , ** kwargs )
496+ if self .default_order_field not in fields :
497+ fields .append (self .default_order_field )
498+ return fields
499+
490500
491501class CustomGenericInlineFormSet (CustomInlineFormSetMixin , BaseGenericInlineFormSet ):
492502 def get_max_order (self ):
0 commit comments