That worked like a charm! The final overlay I used was:
nixpkgs.overlays = [ (final: prev: {
pythonPackagesExtensions = prev.pythonPackagesExtensions ++ [ (pyfinal: pyprev: {
django = pyfinal.callPackage ../overrides/django-4.1.7.nix {};
}) ];
}) ];
Though unfortunately Seahub still appears to be broken back to the drawing board…