'If the ModelAdmin specifies ordering, the queryset should respect that
ordering.  Otherwise don\'t specify the queryset, let the field decide
(returns None in that case).'

def get_field_queryset(self, db, db_field, request):

    related_admin = self.admin_site._registry.get(db_field.rel.to, None)
    if (related_admin is not None):
        ordering = related_admin.get_ordering(request)
        if ((ordering is not None) and (ordering != ())):
            return db_field.rel.to._default_manager.using(db).order_by(*ordering).complex_filter(db_field.rel.limit_choices_to)
    return None
