Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[5.0] Add db_default= parameter to models Field classes #1876

Merged
merged 5 commits into from
Apr 2, 2024

Conversation

Skorpyon
Copy link
Contributor

@Skorpyon Skorpyon commented Dec 14, 2023

Django 5 feature update.

Database-computed default values - db_default arg and attr on model Field.

Tests not written, looks like it haven't things to test.

Full Django 5 updates list.

Copy link
Collaborator

@intgr intgr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! Let's avoid using Any if possible.

django-stubs/db/models/fields/__init__.pyi Outdated Show resolved Hide resolved
@intgr intgr changed the title [Django 5 features] django.db.models.Field.db_default [5.0] Add db_default= parameter to models Field classes Dec 14, 2023
@intgr
Copy link
Collaborator

intgr commented Dec 14, 2023

Tests not written, looks like it haven't things to test.

Yeah, don't worry about tests for .pyi files. Unless it's a particularly complicated case of decorators or generics.

@intgr intgr self-assigned this Dec 14, 2023
@Skorpyon
Copy link
Contributor Author

@intgr may you advice, please?

Python 3.12.0 (main, Nov 17 2023, 17:15:54) [Clang 15.0.0 (clang-1500.0.40.1)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print("\n".join(sys.path))

/Users/anton/.pyenv/versions/3.12.0/lib/python312.zip
/Users/anton/.pyenv/versions/3.12.0/lib/python3.12
/Users/anton/.pyenv/versions/3.12.0/lib/python3.12/lib-dynload
/Users/anton/Documents/projects/github/django-stubs/.venv/lib/python3.12/site-packages
/Users/anton/Documents/projects/github/django-stubs
/Users/anton/Documents/projects/github/django-stubs/ext

But bash ./scripts/stubtest.sh gives:

error: django failed to find stubs
error: django.apps failed to find stubs
error: django.apps.config failed to find stubs
...
note: unused allowlist entry django.views.static.DEFAULT_DIRECTORY_INDEX_TEMPLATE
note: unused allowlist entry django.views.static.builtin_template_path
Found 3010 errors (checked 888 modules)

I stuck, django-stubs installed:

> pip freeze
...
distlib==0.3.8
Django==5.0
-e git+ssh://git@github.com/Skorpyon/django-stubs.git@2cf7a510b57c47d2f56ece659cf4796e0f5fb8f3#egg=django_stubs
-e git+ssh://git@github.com/Skorpyon/django-stubs.git@2cf7a510b57c47d2f56ece659cf4796e0f5fb8f3#egg=django_stubs_ext&subdirectory=ext
filelock==3.13.1
...

@intgr
Copy link
Collaborator

intgr commented Dec 15, 2023

But bash ./scripts/stubtest.sh gives:
Found 3010 errors (checked 888 modules)

Try removing .mypy_cache before running stubtest. There seems to be a bug, but I haven't bothered to debug/report it yet.

@Skorpyon
Copy link
Contributor Author

Here we go...
@intgr may you check files.pyi, please, not sure that it is correct. FileField haven't _ST generic in declaration.

@Skorpyon
Copy link
Contributor Author

I remove db_default from ManyToManyField.__init__() args at all.

Technically it may be passed to init, but latest Django codebase written so ugly, without any forward thinking.
That feature should be realized using some thing like DbDefaultMixin, adding db_default behaviour to specific fields only, but in Django it realized on top level, added to top parent class Field, so db_default available for all field subclasses, no matter have it sense or no.

If db_default have been set in ManyToManyField Django producing pretty fun SQL.

class DBDefaultModel(models.Model):
    created = models.DateField(db_default=Now())
    circumference = models.FloatField(db_default=2 * Pi())
    default_value = models.CharField(max_length=10, db_default=None)
    manyfield = models.ManyToManyField(BlogPost, db_default=123)
>>> from server.apps.main.models import DBDefaultModel
>>> mm = DBDefaultModel()
>>> mm.save()
INSERT INTO "main_dbdefaultmodel" ("created",  "circumference",  "default_value")
VALUES (DEFAULT, DEFAULT, DEFAULT)
RETURNING 
    "main_dbdefaultmodel"."id",
    "main_dbdefaultmodel"."created",
    "main_dbdefaultmodel"."circumference",
    "main_dbdefaultmodel"."default_value",
    "main_dbdefaultmodel"."manyfield";
django.db.utils.ProgrammingError: column main_dbdefaultmodel.manyfield does not exist
СТРОКА 1: ...mference", "main_dbdefaultmodel"."default_value", "main_dbde...

So Django trying retrieve .manyfield column value, thats not exists for sure, because it is many-to-many descriptor with intermediate table.

Copy link
Collaborator

@intgr intgr left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll leave this open for a few days in case another maintainer wants to chime in. If not, we can merge this.

@@ -182,6 +183,7 @@ class Field(RegisterLookupMixin, Generic[_ST, _GT]):
validators: Iterable[validators._ValidatorCallable] = ...,
error_messages: _ErrorMessagesMapping | None = ...,
db_comment: str | None = ...,
db_default: type[NOT_PROVIDED] | Expression | _ST = ...,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry for sitting on this for so long.

When I was thinking about this later, I realized that _ST typevar is usually unbound in model declarations (e.g. field = CharField(db_default=...) rather than field = CharField[str, str](db_default=...); the typevars are resolved later by mypy plugin.

In mypy, this doesn't cause errors at usage location because unbound typevars default to Any in mypy. But I wasn't sure about pyright.

I tested this now, seems that pyright handles it the same way: https://pyright-play.net/?pyrightVersion=1.1.353&pythonVersion=3.12&pythonPlatform=Linux&strict=true&locale=en&code=GYJw9gtgBALgngBwJYDsDmUkQWEMoDiApikSEgMYA0UAKokQGoCGIAUG7VALx0MsgAFACJawgJQcKAG2YBnOVABCsgBYAxJEWkATQcVLkKAbVoBdcQC42UW1B1FgUAPrPUSGK8FztwGjoAjZwdgZgBXaRhLOigAHygAOTBSHigAOgzxKABaAD5E5KJojLSONmAwMFSVZg0tXUFA4MdwyO4ARgAmAGZJAGI7QaG7AD0x8YmJqBQqsnB2IA

I think we can improve this later with typevar defaults on Field classes. There are other reasons as well why that's useful. So I think it's OK to merge this as is.

@intgr intgr merged commit 9fbe1a9 into typeddjango:master Apr 2, 2024
40 checks passed
@sudosubin sudosubin mentioned this pull request Apr 13, 2024
39 tasks
jooola referenced this pull request in libretime/libretime May 5, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [django-stubs](https://togithub.com/typeddjango/django-stubs)
([changelog](https://togithub.com/typeddjango/django-stubs/releases)) |
`>=1.14.0,<5` -> `>=1.14.0,<6` |
[![age](https://developer.mend.io/api/mc/badges/age/pypi/django-stubs/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/django-stubs/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/django-stubs/4.2.7/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/django-stubs/4.2.7/5.0.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>typeddjango/django-stubs (django-stubs)</summary>

###
[`v5.0.0`](https://togithub.com/typeddjango/django-stubs/releases/tag/5.0.0)

[Compare
Source](https://togithub.com/typeddjango/django-stubs/compare/4.2.7...5.0.0)

#### Announcements

- `QuerySet` class no longer derives from `Collection`. If you run into
errors like `incompatible type "_QuerySet[User, User]"; expected
"Collection[User]"`, [please read this
announcement](https://togithub.com/typeddjango/django-stubs/discussions/2095).

#### Headline changes

- Remove incorrect `Collection` base class and `__contains__` method
from `QuerySet` by [@&#8203;fidoriel](https://togithub.com/fidoriel) in
[https://github.com/typeddjango/django-stubs/pull/1925](https://togithub.com/typeddjango/django-stubs/pull/1925)
- Pyright joins the workflow in an advisory capacity by
[@&#8203;jorenham](https://togithub.com/jorenham) in
[https://github.com/typeddjango/django-stubs/pull/2019](https://togithub.com/typeddjango/django-stubs/pull/2019)
- feat: Allow setting django_settings_module from env by
[@&#8203;armanckeser](https://togithub.com/armanckeser) in
[https://github.com/typeddjango/django-stubs/pull/2021](https://togithub.com/typeddjango/django-stubs/pull/2021)
- Add `ManyRelatedManager.through` attribute and generic type parameter
by [@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/2026](https://togithub.com/typeddjango/django-stubs/pull/2026)

#### What's Changed

- Make `StrPromise` not inherit from `Sequence[str]` by
[@&#8203;intgr](https://togithub.com/intgr) in
[https://github.com/typeddjango/django-stubs/pull/1841](https://togithub.com/typeddjango/django-stubs/pull/1841)
- Update and prepare for Django 5.0 by
[@&#8203;intgr](https://togithub.com/intgr) in
[https://github.com/typeddjango/django-stubs/pull/1859](https://togithub.com/typeddjango/django-stubs/pull/1859)
- Ensure mypy plugin processes inherited many to many fields by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1864](https://togithub.com/typeddjango/django-stubs/pull/1864)
- Include ModelBase subclasses in plugin base class hook condition by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1863](https://togithub.com/typeddjango/django-stubs/pull/1863)
- \[5.0] Added many new a-prefixed asynchronous methods by
[@&#8203;bigfootjon](https://togithub.com/bigfootjon) in
[https://github.com/typeddjango/django-stubs/pull/1741](https://togithub.com/typeddjango/django-stubs/pull/1741)
- Remove section regarding custom queryset methods from README by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1865](https://togithub.com/typeddjango/django-stubs/pull/1865)
- Fix type of `AppConfig.models_module` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1866](https://togithub.com/typeddjango/django-stubs/pull/1866)
- Allow `None` in settings `MIGRATION_MODULES` dict values by
[@&#8203;asottile](https://togithub.com/asottile) in
[https://github.com/typeddjango/django-stubs/pull/1871](https://togithub.com/typeddjango/django-stubs/pull/1871)
- Add type hints for `JSONField.from_db_value` by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1879](https://togithub.com/typeddjango/django-stubs/pull/1879)
- Fix/pyright unknown by
[@&#8203;dephiros](https://togithub.com/dephiros) in
[https://github.com/typeddjango/django-stubs/pull/1873](https://togithub.com/typeddjango/django-stubs/pull/1873)
- Fix type hints of `converters` in `urls.resolvers` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1892](https://togithub.com/typeddjango/django-stubs/pull/1892)
- Update mypy to 1.8.0 by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/1885](https://togithub.com/typeddjango/django-stubs/pull/1885)
- Add `@type_check_only` to all Protocols and known stubs-only classes
by [@&#8203;intgr](https://togithub.com/intgr) in
[https://github.com/typeddjango/django-stubs/pull/1894](https://togithub.com/typeddjango/django-stubs/pull/1894)
- Fix types for UniqueConstraint instantiation by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1880](https://togithub.com/typeddjango/django-stubs/pull/1880)
- Add `ModuleType` as a possible type to `URLResolver.urlconf_name` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1891](https://togithub.com/typeddjango/django-stubs/pull/1891)
- Fix type hint of `URLPattern.default_args` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1895](https://togithub.com/typeddjango/django-stubs/pull/1895)
- Update ruff and silence `PYI046` by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/1907](https://togithub.com/typeddjango/django-stubs/pull/1907)
- Use PEP 570 syntax by [@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1908](https://togithub.com/typeddjango/django-stubs/pull/1908)
- Fix readme settings example by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1910](https://togithub.com/typeddjango/django-stubs/pull/1910)
- Fix type hint of `EmailBackend.ssl_keyfile` and
`EmailBackend.ssl_certfile` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1911](https://togithub.com/typeddjango/django-stubs/pull/1911)
- Add type of `django.VERSION` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1916](https://togithub.com/typeddjango/django-stubs/pull/1916)
- Added `CommandParser` to `commands.__init__` by
[@&#8203;jamesbraza](https://togithub.com/jamesbraza) in
[https://github.com/typeddjango/django-stubs/pull/1927](https://togithub.com/typeddjango/django-stubs/pull/1927)
- \[5.0] add `assume_scheme` to forms.URLField by
[@&#8203;asottile](https://togithub.com/asottile) in
[https://github.com/typeddjango/django-stubs/pull/1929](https://togithub.com/typeddjango/django-stubs/pull/1929)
- Fix return type of `BaseModelAdmin.formfield_for_dbfield` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1934](https://togithub.com/typeddjango/django-stubs/pull/1934)
- Revert `pre-commit==3.6.1` by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/1936](https://togithub.com/typeddjango/django-stubs/pull/1936)
- Fix type hint of `Response.set_cookie.max_age` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1941](https://togithub.com/typeddjango/django-stubs/pull/1941)
- 5.0: Add ChoicesType by [@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1942](https://togithub.com/typeddjango/django-stubs/pull/1942)
- Add through_defaults for RelatedManager methods by
[@&#8203;mfosterw](https://togithub.com/mfosterw) in
[https://github.com/typeddjango/django-stubs/pull/1943](https://togithub.com/typeddjango/django-stubs/pull/1943)
- Update type hints of `core.signing` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1945](https://togithub.com/typeddjango/django-stubs/pull/1945)
- \[5.0] Update `core.validators` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1947](https://togithub.com/typeddjango/django-stubs/pull/1947)
- \[5.0] Update `core.paginator` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1946](https://togithub.com/typeddjango/django-stubs/pull/1946)
- Generic `forms.ModelChoiceField` by
[@&#8203;UnknownPlatypus](https://togithub.com/UnknownPlatypus) in
[https://github.com/typeddjango/django-stubs/pull/1889](https://togithub.com/typeddjango/django-stubs/pull/1889)
- Support processing of other relations and fields when one is broken by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1877](https://togithub.com/typeddjango/django-stubs/pull/1877)
- Allowing `set` in `model_to_dict`'s `exclude` by
[@&#8203;jamesbraza](https://togithub.com/jamesbraza) in
[https://github.com/typeddjango/django-stubs/pull/1952](https://togithub.com/typeddjango/django-stubs/pull/1952)
- \[5.0] Add django.db.models.GeneratedField by
[@&#8203;palfrey](https://togithub.com/palfrey) in
[https://github.com/typeddjango/django-stubs/pull/1944](https://togithub.com/typeddjango/django-stubs/pull/1944)
- Fix type hint of `BaseEngine.template_dirs` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1954](https://togithub.com/typeddjango/django-stubs/pull/1954)
- Update type hints of contrib.auth.hashers by
[@&#8203;yhay81](https://togithub.com/yhay81) in
[https://github.com/typeddjango/django-stubs/pull/1955](https://togithub.com/typeddjango/django-stubs/pull/1955)
- deps: Upgrade pre-commit for newer versions of python by
[@&#8203;delfick](https://togithub.com/delfick) in
[https://github.com/typeddjango/django-stubs/pull/1961](https://togithub.com/typeddjango/django-stubs/pull/1961)
- 5.0: Add auth.middleware.auser by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1966](https://togithub.com/typeddjango/django-stubs/pull/1966)
- 5.0: Add ModelAdmin.show_facets by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1967](https://togithub.com/typeddjango/django-stubs/pull/1967)
- ruff: Fix config warnings by [@&#8203;q0w](https://togithub.com/q0w)
in
[https://github.com/typeddjango/django-stubs/pull/1964](https://togithub.com/typeddjango/django-stubs/pull/1964)
- 5.0: Add BaseConstraint.violation_error_code by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1969](https://togithub.com/typeddjango/django-stubs/pull/1969)
- 5.0: Add Signal.asend and Signal.asend_robust by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1965](https://togithub.com/typeddjango/django-stubs/pull/1965)
- 5.0: Add QuerySet.(a)update_or_create new create_defaults arg by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1970](https://togithub.com/typeddjango/django-stubs/pull/1970)
- 5.0: Add AdminSite.get_log_entries by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1963](https://togithub.com/typeddjango/django-stubs/pull/1963)
- 5.0: Add gis ClosestPoint by [@&#8203;q0w](https://togithub.com/q0w)
in
[https://github.com/typeddjango/django-stubs/pull/1968](https://togithub.com/typeddjango/django-stubs/pull/1968)
- 5.0: Rename save_existing arg instance to obj by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1971](https://togithub.com/typeddjango/django-stubs/pull/1971)
- 5.0: Remove admin.helpers.checkbox by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1972](https://togithub.com/typeddjango/django-stubs/pull/1972)
- 5.0: Change annotation_select_mask from set\[str] to list\[str] by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1973](https://togithub.com/typeddjango/django-stubs/pull/1973)
- fixup: Pass violation_error_code to init by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1975](https://togithub.com/typeddjango/django-stubs/pull/1975)
- Avoid returning None from get_field_related_model_cls by
[@&#8203;SingingTree](https://togithub.com/SingingTree) in
[https://github.com/typeddjango/django-stubs/pull/1956](https://togithub.com/typeddjango/django-stubs/pull/1956)
- 5.0: Pass positional args name and violation_error_message to
BaseConstraint by [@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1974](https://togithub.com/typeddjango/django-stubs/pull/1974)
- 5.0: Remove pytz support by [@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1980](https://togithub.com/typeddjango/django-stubs/pull/1980)
- 5.0: Remove global setting USE_L10N by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1979](https://togithub.com/typeddjango/django-stubs/pull/1979)
- 5.0: Remove OSMGeoAdmin, GeoModelAdmin by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1981](https://togithub.com/typeddjango/django-stubs/pull/1981)
- 5.0: Remove extra_tests arg for DiscoverRunner.build_suite/run_tests
by [@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1978](https://togithub.com/typeddjango/django-stubs/pull/1978)
- 5.0: Remove django.utils baseconv and datetime_safe modules by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1977](https://togithub.com/typeddjango/django-stubs/pull/1977)
- 5.0: Add request arg to ModelAdmin.lookup_allowed by
[@&#8203;q0w](https://togithub.com/q0w) in
[https://github.com/typeddjango/django-stubs/pull/1976](https://togithub.com/typeddjango/django-stubs/pull/1976)
- Add URL converter protocol type by
[@&#8203;adamchainz](https://togithub.com/adamchainz) in
[https://github.com/typeddjango/django-stubs/pull/1984](https://togithub.com/typeddjango/django-stubs/pull/1984)
- Fix type annotation for RegisterLookupMixin.class_lookups by
[@&#8203;avoronov-box](https://togithub.com/avoronov-box) in
[https://github.com/typeddjango/django-stubs/pull/1962](https://togithub.com/typeddjango/django-stubs/pull/1962)
- Update django to 5.0.3 by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/1990](https://togithub.com/typeddjango/django-stubs/pull/1990)
- Remove some deprecated Django 3.x APIs by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/1991](https://togithub.com/typeddjango/django-stubs/pull/1991)
- Fix BaseModelAdmin.view_on_site annotation by
[@&#8203;cuu508](https://togithub.com/cuu508) in
[https://github.com/typeddjango/django-stubs/pull/1993](https://togithub.com/typeddjango/django-stubs/pull/1993)
- Allow immutable `extra_context` on `TemplateView`s by
[@&#8203;samueljsb](https://togithub.com/samueljsb) in
[https://github.com/typeddjango/django-stubs/pull/1994](https://togithub.com/typeddjango/django-stubs/pull/1994)
- Add BoundField.**html**() by
[@&#8203;pelme](https://togithub.com/pelme) in
[https://github.com/typeddjango/django-stubs/pull/1999](https://togithub.com/typeddjango/django-stubs/pull/1999)
- Allow timedelta type for session.set_expiry() argument by
[@&#8203;mlazar-endear](https://togithub.com/mlazar-endear) in
[https://github.com/typeddjango/django-stubs/pull/2001](https://togithub.com/typeddjango/django-stubs/pull/2001)
- Bump `pytest-mypy-plugins` to 3.1.1 by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/2003](https://togithub.com/typeddjango/django-stubs/pull/2003)
- Update mypy, add a bit more metadata by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/1997](https://togithub.com/typeddjango/django-stubs/pull/1997)
- 5.0: Update `django.contrib.auth` by
[@&#8203;ngnpope](https://togithub.com/ngnpope) in
[https://github.com/typeddjango/django-stubs/pull/2009](https://togithub.com/typeddjango/django-stubs/pull/2009)
- 5.0: Update `django.conf` by
[@&#8203;ngnpope](https://togithub.com/ngnpope) in
[https://github.com/typeddjango/django-stubs/pull/2008](https://togithub.com/typeddjango/django-stubs/pull/2008)
- 5.0: Update `django.views` by
[@&#8203;ngnpope](https://togithub.com/ngnpope) in
[https://github.com/typeddjango/django-stubs/pull/2007](https://togithub.com/typeddjango/django-stubs/pull/2007)
- 5.0: Update `django.test` by
[@&#8203;ngnpope](https://togithub.com/ngnpope) in
[https://github.com/typeddjango/django-stubs/pull/2005](https://togithub.com/typeddjango/django-stubs/pull/2005)
- 5.0: Update `django.utils` by
[@&#8203;ngnpope](https://togithub.com/ngnpope) in
[https://github.com/typeddjango/django-stubs/pull/2006](https://togithub.com/typeddjango/django-stubs/pull/2006)
- Specify d.c.serializers.base.DeserializedObject.object type by
[@&#8203;j00bar](https://togithub.com/j00bar) in
[https://github.com/typeddjango/django-stubs/pull/2010](https://togithub.com/typeddjango/django-stubs/pull/2010)
- Clean the cache on each run of `stubtest` by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/2015](https://togithub.com/typeddjango/django-stubs/pull/2015)
- Keep abstract Django models internally in the plugin by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/2017](https://togithub.com/typeddjango/django-stubs/pull/2017)
- Add GitHub actions release workflow by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1950](https://togithub.com/typeddjango/django-stubs/pull/1950)
- Adding missing `Q` methods: `check()`, `flatten()` by
[@&#8203;Alexerson](https://togithub.com/Alexerson) in
[https://github.com/typeddjango/django-stubs/pull/1899](https://togithub.com/typeddjango/django-stubs/pull/1899)
- Improve types in `utils.termcolors` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1901](https://togithub.com/typeddjango/django-stubs/pull/1901)
- Set the calculated metaclass when creating type info in the plugin by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/2025](https://togithub.com/typeddjango/django-stubs/pull/2025)
- Do not annotate PRs with pyright by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/2023](https://togithub.com/typeddjango/django-stubs/pull/2023)
- Use `PRI_MYPY` in `get_additional_deps` hook by
[@&#8203;sobolevn](https://togithub.com/sobolevn) in
[https://github.com/typeddjango/django-stubs/pull/2024](https://togithub.com/typeddjango/django-stubs/pull/2024)
- Update `_default_manager` and `_base_manager` to be `Manager` by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/2022](https://togithub.com/typeddjango/django-stubs/pull/2022)
- Determine the type of queryset methods on unions by
[@&#8203;delfick](https://togithub.com/delfick) in
[https://github.com/typeddjango/django-stubs/pull/2027](https://togithub.com/typeddjango/django-stubs/pull/2027)
- Add first stub for get_model_admin by
[@&#8203;nebiyuelias1](https://togithub.com/nebiyuelias1) in
[https://github.com/typeddjango/django-stubs/pull/2029](https://togithub.com/typeddjango/django-stubs/pull/2029)
- 5.0: Update `django.contrib.admin` by
[@&#8203;ngnpope](https://togithub.com/ngnpope) in
[https://github.com/typeddjango/django-stubs/pull/2004](https://togithub.com/typeddjango/django-stubs/pull/2004)
- \[5.0] Update `core.files` by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1949](https://togithub.com/typeddjango/django-stubs/pull/1949)
- \[5.0] Update `core.cache.backends`, add `RedisCache` and related
classes by [@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/1948](https://togithub.com/typeddjango/django-stubs/pull/1948)
- Fix `AsyncClient.defaults` attribute typing by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/1878](https://togithub.com/typeddjango/django-stubs/pull/1878)
- Relax type for `fields` argument of `Model.refresh_from_db()` by
[@&#8203;mthuurne](https://togithub.com/mthuurne) in
[https://github.com/typeddjango/django-stubs/pull/2035](https://togithub.com/typeddjango/django-stubs/pull/2035)
- \[5.0] Add missing stubs for geos by
[@&#8203;nebiyuelias1](https://togithub.com/nebiyuelias1) in
[https://github.com/typeddjango/django-stubs/pull/2034](https://togithub.com/typeddjango/django-stubs/pull/2034)
- Make `AdminSite.get_model_admin` generic by
[@&#8203;Viicos](https://togithub.com/Viicos) in
[https://github.com/typeddjango/django-stubs/pull/2038](https://togithub.com/typeddjango/django-stubs/pull/2038)
- \[5.0] Add `db_default=` parameter to models `Field` classes by
[@&#8203;Skorpyon](https://togithub.com/Skorpyon) in
[https://github.com/typeddjango/django-stubs/pull/1876](https://togithub.com/typeddjango/django-stubs/pull/1876)
- Remove `class Meta` from `Model` and `Form` class stubs by
[@&#8203;jorenham](https://togithub.com/jorenham) in
[https://github.com/typeddjango/django-stubs/pull/2000](https://togithub.com/typeddjango/django-stubs/pull/2000)
- Add datetime.timedelta as valid type for
HttpRequest.get_signed_cookie() max_age argument. by
[@&#8203;pelme](https://togithub.com/pelme) in
[https://github.com/typeddjango/django-stubs/pull/2045](https://togithub.com/typeddjango/django-stubs/pull/2045)
- CI: Update Django 4.2 version used for test suite by
[@&#8203;intgr](https://togithub.com/intgr) in
[https://github.com/typeddjango/django-stubs/pull/2049](https://togithub.com/typeddjango/django-stubs/pull/2049)
- Refine return type for `ManyToOneRel.get_accessor_name()` by
[@&#8203;mthuurne](https://togithub.com/mthuurne) in
[https://github.com/typeddjango/django-stubs/pull/2052](https://togithub.com/typeddjango/django-stubs/pull/2052)
- Add `DeferredAttribute.__get__()` by
[@&#8203;mthuurne](https://togithub.com/mthuurne) in
[https://github.com/typeddjango/django-stubs/pull/2050](https://togithub.com/typeddjango/django-stubs/pull/2050)
- Add missing methods and superclass to `FieldFile` by
[@&#8203;mthuurne](https://togithub.com/mthuurne) in
[https://github.com/typeddjango/django-stubs/pull/2051](https://togithub.com/typeddjango/django-stubs/pull/2051)
- Add `db_comment=` parameter to Postgres and GIS model fields by
[@&#8203;saJaeHyukc](https://togithub.com/saJaeHyukc) in
[https://github.com/typeddjango/django-stubs/pull/2054](https://togithub.com/typeddjango/django-stubs/pull/2054)
- Correct type for `db.models.sql.query.Query.join()` argument by
[@&#8203;mthuurne](https://togithub.com/mthuurne) in
[https://github.com/typeddjango/django-stubs/pull/2055](https://togithub.com/typeddjango/django-stubs/pull/2055)
- 5.0: Update `django.db.backends.oracle.base` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2057](https://togithub.com/typeddjango/django-stubs/pull/2057)
- 5.0: Update `django.test.client` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2059](https://togithub.com/typeddjango/django-stubs/pull/2059)
- 5.0: Update `django.test.html` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2060](https://togithub.com/typeddjango/django-stubs/pull/2060)
- 5.0: Update `django.test.runner` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2061](https://togithub.com/typeddjango/django-stubs/pull/2061)
- 5.0: Update `django.template`, `django.templatetags` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2063](https://togithub.com/typeddjango/django-stubs/pull/2063)
- 5.0: Update `django.test.testcases` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2062](https://togithub.com/typeddjango/django-stubs/pull/2062)
- 5.0: Update `django.http` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2064](https://togithub.com/typeddjango/django-stubs/pull/2064)
- 5.0: Update `django.core.management` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2067](https://togithub.com/typeddjango/django-stubs/pull/2067)
- 5.0: Update `django.core.handlers` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2066](https://togithub.com/typeddjango/django-stubs/pull/2066)
- 5.0: Update `django.contrib.sessions.serializers`,
`django.core.serializers` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2068](https://togithub.com/typeddjango/django-stubs/pull/2068)
- Update django app related types by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2071](https://togithub.com/typeddjango/django-stubs/pull/2071)
- Add a `returncode` attribute to `CommandError` by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/2072](https://togithub.com/typeddjango/django-stubs/pull/2072)
- Disable mypy `ignore_missing_imports` option by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2058](https://togithub.com/typeddjango/django-stubs/pull/2058)
- fix typing for URL validator.**call** by
[@&#8203;asottile](https://togithub.com/asottile) in
[https://github.com/typeddjango/django-stubs/pull/2074](https://togithub.com/typeddjango/django-stubs/pull/2074)
- Use field generic types for descriptors by
[@&#8203;md384](https://togithub.com/md384) in
[https://github.com/typeddjango/django-stubs/pull/2048](https://togithub.com/typeddjango/django-stubs/pull/2048)
- 5.0: Update `django.core.servers.basehttp` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2070](https://togithub.com/typeddjango/django-stubs/pull/2070)
- Update `django.template.base.Template.render()` argument type by
[@&#8203;Majsvaffla](https://togithub.com/Majsvaffla) in
[https://github.com/typeddjango/django-stubs/pull/1160](https://togithub.com/typeddjango/django-stubs/pull/1160)
- 5.0: Add `django.utils.choices` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2075](https://togithub.com/typeddjango/django-stubs/pull/2075)
- 5.0: Update `django.contrib.sitemaps`, `django.contrib.staticfiles` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2076](https://togithub.com/typeddjango/django-stubs/pull/2076)
- Update pyright report options (`reportMissingTypeArgument`,
`reportPrivateUsage`) by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2077](https://togithub.com/typeddjango/django-stubs/pull/2077)
- 5.0: Update `django.contrib.postgres` by
[@&#8203;sudosubin](https://togithub.com/sudosubin) in
[https://github.com/typeddjango/django-stubs/pull/2078](https://togithub.com/typeddjango/django-stubs/pull/2078)
- Add `path` signature for async views by
[@&#8203;jlost](https://togithub.com/jlost) in
[https://github.com/typeddjango/django-stubs/pull/2085](https://togithub.com/typeddjango/django-stubs/pull/2085)
- Remove incorrect `Reversible` base class from `QuerySet` by
[@&#8203;intgr](https://togithub.com/intgr) in
[https://github.com/typeddjango/django-stubs/pull/2094](https://togithub.com/typeddjango/django-stubs/pull/2094)
- Version 5.0.0 release (django-stubs, django-stubs-ext) by
[@&#8203;flaeppe](https://togithub.com/flaeppe) in
[https://github.com/typeddjango/django-stubs/pull/2087](https://togithub.com/typeddjango/django-stubs/pull/2087)

#### New Contributors

- [@&#8203;Viicos](https://togithub.com/Viicos) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1866](https://togithub.com/typeddjango/django-stubs/pull/1866)
- [@&#8203;dephiros](https://togithub.com/dephiros) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1873](https://togithub.com/typeddjango/django-stubs/pull/1873)
- [@&#8203;jamesbraza](https://togithub.com/jamesbraza) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1927](https://togithub.com/typeddjango/django-stubs/pull/1927)
- [@&#8203;mfosterw](https://togithub.com/mfosterw) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1943](https://togithub.com/typeddjango/django-stubs/pull/1943)
- [@&#8203;palfrey](https://togithub.com/palfrey) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1944](https://togithub.com/typeddjango/django-stubs/pull/1944)
- [@&#8203;yhay81](https://togithub.com/yhay81) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1955](https://togithub.com/typeddjango/django-stubs/pull/1955)
- [@&#8203;delfick](https://togithub.com/delfick) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1961](https://togithub.com/typeddjango/django-stubs/pull/1961)
- [@&#8203;SingingTree](https://togithub.com/SingingTree) made their
first contribution in
[https://github.com/typeddjango/django-stubs/pull/1956](https://togithub.com/typeddjango/django-stubs/pull/1956)
- [@&#8203;avoronov-box](https://togithub.com/avoronov-box) made their
first contribution in
[https://github.com/typeddjango/django-stubs/pull/1962](https://togithub.com/typeddjango/django-stubs/pull/1962)
- [@&#8203;cuu508](https://togithub.com/cuu508) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1993](https://togithub.com/typeddjango/django-stubs/pull/1993)
- [@&#8203;samueljsb](https://togithub.com/samueljsb) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1994](https://togithub.com/typeddjango/django-stubs/pull/1994)
- [@&#8203;pelme](https://togithub.com/pelme) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1999](https://togithub.com/typeddjango/django-stubs/pull/1999)
- [@&#8203;mlazar-endear](https://togithub.com/mlazar-endear) made their
first contribution in
[https://github.com/typeddjango/django-stubs/pull/2001](https://togithub.com/typeddjango/django-stubs/pull/2001)
- [@&#8203;j00bar](https://togithub.com/j00bar) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/2010](https://togithub.com/typeddjango/django-stubs/pull/2010)
- [@&#8203;jorenham](https://togithub.com/jorenham) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/2019](https://togithub.com/typeddjango/django-stubs/pull/2019)
- [@&#8203;fidoriel](https://togithub.com/fidoriel) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1925](https://togithub.com/typeddjango/django-stubs/pull/1925)
- [@&#8203;armanckeser](https://togithub.com/armanckeser) made their
first contribution in
[https://github.com/typeddjango/django-stubs/pull/2021](https://togithub.com/typeddjango/django-stubs/pull/2021)
- [@&#8203;nebiyuelias1](https://togithub.com/nebiyuelias1) made their
first contribution in
[https://github.com/typeddjango/django-stubs/pull/2029](https://togithub.com/typeddjango/django-stubs/pull/2029)
- [@&#8203;Skorpyon](https://togithub.com/Skorpyon) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1876](https://togithub.com/typeddjango/django-stubs/pull/1876)
- [@&#8203;saJaeHyukc](https://togithub.com/saJaeHyukc) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/2054](https://togithub.com/typeddjango/django-stubs/pull/2054)
- [@&#8203;sudosubin](https://togithub.com/sudosubin) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/2057](https://togithub.com/typeddjango/django-stubs/pull/2057)
- [@&#8203;md384](https://togithub.com/md384) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/2048](https://togithub.com/typeddjango/django-stubs/pull/2048)
- [@&#8203;Majsvaffla](https://togithub.com/Majsvaffla) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/1160](https://togithub.com/typeddjango/django-stubs/pull/1160)
- [@&#8203;jlost](https://togithub.com/jlost) made their first
contribution in
[https://github.com/typeddjango/django-stubs/pull/2085](https://togithub.com/typeddjango/django-stubs/pull/2085)

**Full Changelog**:
typeddjango/django-stubs@4.2.7...5.0.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/libretime/libretime).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMjEuMiIsInVwZGF0ZWRJblZlciI6IjM3LjMyMS4yIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJkZXBlbmRlbmNpZXMiLCJweXRob24iXX0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants