From 58a761280e5b6b85554054d9aba00dd1b72cd2c5 Mon Sep 17 00:00:00 2001 From: marcus Date: Fri, 5 Jun 2026 12:29:21 +0200 Subject: [PATCH 1/2] Add regression test for save/asave stubs missing the * for keyword-only argsument. --- tests/trout/models.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/tests/trout/models.py b/tests/trout/models.py index 6e0713ee1..d552d4b7d 100644 --- a/tests/trout/models.py +++ b/tests/trout/models.py @@ -948,3 +948,11 @@ class Meta: name="author_not_null_idx", ), ] + +# Regression: save/asave stubs were missing *, causing false positives on **kwargs overrides +class SaveOverrideModel(models.Model): + def save(self, **kwargs): # type: ignore[no-untyped-def] + super().save(**kwargs) + + async def asave(self, **kwargs): # type: ignore[no-untyped-def] + await super().asave(**kwargs) \ No newline at end of file From 1ad8806788af86d9bcaccb097e58db47d0bc8074 Mon Sep 17 00:00:00 2001 From: marcus Date: Fri, 5 Jun 2026 12:29:51 +0200 Subject: [PATCH 2/2] Fix save/asave stubs. --- django-stubs/db/models/base.pyi | 2 ++ 1 file changed, 2 insertions(+) diff --git a/django-stubs/db/models/base.pyi b/django-stubs/db/models/base.pyi index 1a21036f7..6a792529d 100644 --- a/django-stubs/db/models/base.pyi +++ b/django-stubs/db/models/base.pyi @@ -55,6 +55,7 @@ class Model(metaclass=ModelBase): ) -> ValidationError: ... def save( self, + *, force_insert: bool = ..., force_update: bool = ..., using: str | None = ..., @@ -62,6 +63,7 @@ class Model(metaclass=ModelBase): ) -> None: ... async def asave( self, + *, force_insert: bool = ..., force_update: bool = ..., using: str | None = ...,