diff --git a/addons/web/static/src/js/views/basic/basic_model.js b/addons/web/static/src/js/views/basic/basic_model.js
index c2a9e627311566ac8091751fabe14b5cbf2bd383..039569017fea580bb92439377309dd5f22c55213 100644
--- a/addons/web/static/src/js/views/basic/basic_model.js
+++ b/addons/web/static/src/js/views/basic/basic_model.js
@@ -1017,6 +1017,7 @@ var BasicModel = AbstractModel.extend({
         var params = {
             model: modelName,
             ids: resIDs,
+            context: data.getContext(),
         };
         if (options.offset) {
             params.offset = options.offset;
@@ -1040,6 +1041,7 @@ var BasicModel = AbstractModel.extend({
                     model: modelName,
                     method: 'read',
                     args: [resIDs, [field]],
+                    context: data.getContext(),
                 }).then(function (records) {
                     if (data.data.length) {
                         var dataType = self.localData[data.data[0]].type;
diff --git a/addons/web/static/tests/views/basic_model_tests.js b/addons/web/static/tests/views/basic_model_tests.js
index 5a6f425f6775dcc550e313114f0d78f7ff805cb7..6642bb18c5698ab7dea59b01b692147fa85e3016 100644
--- a/addons/web/static/tests/views/basic_model_tests.js
+++ b/addons/web/static/tests/views/basic_model_tests.js
@@ -65,6 +65,41 @@ odoo.define('web.basic_model_tests', function (require) {
     }, function () {
         QUnit.module('BasicModel');
 
+        QUnit.test('context is given when using a resequence', async function (assert) {
+            assert.expect(2);
+            delete this.params["res_id"];
+            this.data.product.fields.sequence = {string: "Sequence", type: "integer"};
+
+            const model = createModel({
+                Model: BasicModel,
+                data: this.data,
+                mockRPC: function (route, args) {
+                    if (route === '/web/dataset/resequence') {
+                        assert.deepEqual(args.context, { active_field: 2 },
+                            "context should be correct after a resequence");
+                    }
+                    else if (args.method === "read") {
+                        assert.deepEqual(args.kwargs.context, { active_field: 2 },
+                            "context should be correct after a 'read' RPC");
+                    }
+                    return this._super.apply(this, arguments);
+                },
+            });
+            const params = _.extend(this.params, {
+                context: { active_field: 2 },
+                groupedBy: ['product_id'],
+                fieldNames: ['foo'],
+            });
+    
+            model.load(params)
+                .then(function (stateID) {
+                    return model.resequence('product', [41, 37], stateID);
+                })
+                .then(function () {
+                    model.destroy();
+                });
+        });
+
         QUnit.test('can process x2many commands', async function (assert) {
             assert.expect(5);
 
diff --git a/addons/web/static/tests/views/list_tests.js b/addons/web/static/tests/views/list_tests.js
index 0fb620f695053be7259144869b006d583e56b362..bdf4c1bcc5e9a4d5ede77690c72c339b324f0a4c 100644
--- a/addons/web/static/tests/views/list_tests.js
+++ b/addons/web/static/tests/views/list_tests.js
@@ -5448,6 +5448,7 @@ QUnit.module('Views', {
                 if (route === '/web/dataset/resequence') {
                     if (moves === 0) {
                         assert.deepEqual(args, {
+                            context: {},
                             model: "foo",
                             ids: [4, 3],
                             offset: 13,
@@ -5456,6 +5457,7 @@ QUnit.module('Views', {
                     }
                     if (moves === 1) {
                         assert.deepEqual(args, {
+                            context: {},
                             model: "foo",
                             ids: [4, 2],
                             offset: 12,
@@ -5464,6 +5466,7 @@ QUnit.module('Views', {
                     }
                     if (moves === 2) {
                         assert.deepEqual(args, {
+                            context: {},
                             model: "foo",
                             ids: [2, 4],
                             offset: 12,
@@ -5472,6 +5475,7 @@ QUnit.module('Views', {
                     }
                     if (moves === 3) {
                         assert.deepEqual(args, {
+                            context: {},
                             model: "foo",
                             ids: [4, 2],
                             offset: 12,