django-types 0.19.1__py3-none-any.whl → 0.21.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- django-stubs/contrib/admin/__init__.pyi +1 -0
- django-stubs/contrib/admin/actions.pyi +2 -2
- django-stubs/contrib/admin/decorators.pyi +4 -3
- django-stubs/contrib/admin/filters.pyi +5 -5
- django-stubs/contrib/admin/models.pyi +23 -11
- django-stubs/contrib/admin/options.pyi +67 -38
- django-stubs/contrib/admin/sites.pyi +11 -11
- django-stubs/contrib/admin/templatetags/base.pyi +1 -1
- django-stubs/contrib/admin/utils.pyi +2 -2
- django-stubs/contrib/admin/views/autocomplete.pyi +2 -2
- django-stubs/contrib/admin/views/main.pyi +8 -7
- django-stubs/contrib/admindocs/middleware.pyi +2 -2
- django-stubs/contrib/auth/__init__.pyi +14 -4
- django-stubs/contrib/auth/admin.pyi +2 -2
- django-stubs/contrib/auth/backends.pyi +22 -0
- django-stubs/contrib/auth/base_user.pyi +3 -3
- django-stubs/contrib/auth/forms.pyi +1 -1
- django-stubs/contrib/auth/middleware.pyi +1 -2
- django-stubs/contrib/auth/models.pyi +50 -26
- django-stubs/contrib/auth/views.pyi +1 -2
- django-stubs/contrib/contenttypes/fields.pyi +1 -1
- django-stubs/contrib/contenttypes/models.pyi +3 -1
- django-stubs/contrib/flatpages/middleware.pyi +2 -2
- django-stubs/contrib/flatpages/views.pyi +3 -3
- django-stubs/contrib/postgres/fields/array.pyi +6 -5
- django-stubs/contrib/postgres/fields/citext.pyi +13 -8
- django-stubs/contrib/postgres/fields/hstore.pyi +5 -4
- django-stubs/contrib/staticfiles/finders.pyi +1 -2
- django-stubs/contrib/staticfiles/views.pyi +2 -2
- django-stubs/contrib/syndication/views.pyi +4 -4
- django-stubs/core/cache/backends/base.pyi +9 -0
- django-stubs/core/exceptions.pyi +18 -11
- django-stubs/core/files/base.pyi +1 -1
- django-stubs/core/files/storage.pyi +2 -2
- django-stubs/core/mail/__init__.pyi +1 -1
- django-stubs/core/mail/backends/base.pyi +1 -0
- django-stubs/core/mail/message.pyi +6 -6
- django-stubs/core/serializers/json.pyi +1 -1
- django-stubs/core/servers/basehttp.pyi +2 -2
- django-stubs/db/backends/utils.pyi +1 -2
- django-stubs/db/migrations/recorder.pyi +1 -1
- django-stubs/db/models/base.pyi +9 -3
- django-stubs/db/models/constraints.pyi +1 -0
- django-stubs/db/models/enums.pyi +10 -19
- django-stubs/db/models/expressions.pyi +1 -1
- django-stubs/db/models/fields/__init__.pyi +227 -77
- django-stubs/db/models/fields/files.pyi +2 -2
- django-stubs/db/models/fields/json.pyi +10 -6
- django-stubs/db/models/fields/related.pyi +42 -20
- django-stubs/db/models/fields/related_descriptors.pyi +3 -3
- django-stubs/db/models/functions/__init__.pyi +2 -0
- django-stubs/db/models/functions/comparison.pyi +8 -0
- django-stubs/db/models/manager.pyi +11 -6
- django-stubs/db/models/query.pyi +4 -1
- django-stubs/db/models/query_utils.pyi +1 -0
- django-stubs/db/transaction.pyi +7 -1
- django-stubs/forms/boundfield.pyi +3 -1
- django-stubs/forms/forms.pyi +28 -35
- django-stubs/forms/formsets.pyi +98 -63
- django-stubs/forms/models.pyi +22 -17
- django-stubs/forms/renderers.pyi +26 -13
- django-stubs/forms/utils.pyi +38 -11
- django-stubs/http/cookie.pyi +3 -1
- django-stubs/http/request.pyi +43 -16
- django-stubs/http/response.pyi +38 -30
- django-stubs/shortcuts.pyi +1 -2
- django-stubs/template/backends/base.pyi +14 -5
- django-stubs/template/backends/django.pyi +24 -3
- django-stubs/template/backends/dummy.pyi +7 -6
- django-stubs/template/backends/jinja2.pyi +20 -2
- django-stubs/template/backends/utils.pyi +3 -3
- django-stubs/template/base.pyi +2 -2
- django-stubs/template/context.pyi +2 -2
- django-stubs/template/context_processors.pyi +1 -2
- django-stubs/template/library.pyi +79 -15
- django-stubs/template/loader.pyi +5 -3
- django-stubs/template/response.pyi +3 -3
- django-stubs/template/utils.pyi +6 -4
- django-stubs/test/client.pyi +176 -20
- django-stubs/test/testcases.pyi +4 -4
- django-stubs/test/utils.pyi +41 -55
- django-stubs/urls/base.pyi +18 -2
- django-stubs/urls/conf.pyi +7 -0
- django-stubs/utils/cache.pyi +4 -4
- django-stubs/utils/datastructures.pyi +5 -5
- django-stubs/utils/deconstruct.pyi +10 -2
- django-stubs/utils/log.pyi +1 -1
- django-stubs/utils/six.pyi +1 -1
- django-stubs/utils/translation/__init__.pyi +5 -3
- django-stubs/utils/translation/trans_real.pyi +2 -2
- django-stubs/views/decorators/csrf.pyi +1 -1
- django-stubs/views/generic/edit.pyi +1 -2
- {django_types-0.19.1.dist-info → django_types-0.21.0.dist-info}/METADATA +12 -8
- {django_types-0.19.1.dist-info → django_types-0.21.0.dist-info}/RECORD +96 -96
- {django_types-0.19.1.dist-info → django_types-0.21.0.dist-info}/WHEEL +1 -1
- {django_types-0.19.1.dist-info → django_types-0.21.0.dist-info}/LICENSE.txt +0 -0
|
@@ -6,6 +6,7 @@ from .filters import AllValuesFieldListFilter as AllValuesFieldListFilter
|
|
|
6
6
|
from .filters import BooleanFieldListFilter as BooleanFieldListFilter
|
|
7
7
|
from .filters import ChoicesFieldListFilter as ChoicesFieldListFilter
|
|
8
8
|
from .filters import DateFieldListFilter as DateFieldListFilter
|
|
9
|
+
from .filters import EmptyFieldListFilter as EmptyFieldListFilter
|
|
9
10
|
from .filters import FieldListFilter as FieldListFilter
|
|
10
11
|
from .filters import ListFilter as ListFilter
|
|
11
12
|
from .filters import RelatedFieldListFilter as RelatedFieldListFilter
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
|
|
3
3
|
from django.contrib.admin.options import ModelAdmin
|
|
4
|
-
from django.core.handlers.wsgi import WSGIRequest
|
|
5
4
|
from django.db.models.query import QuerySet
|
|
5
|
+
from django.http.request import HttpRequest
|
|
6
6
|
from django.template.response import TemplateResponse
|
|
7
7
|
|
|
8
8
|
def delete_selected(
|
|
9
|
-
modeladmin: ModelAdmin[Any], request:
|
|
9
|
+
modeladmin: ModelAdmin[Any], request: HttpRequest, queryset: QuerySet[Any]
|
|
10
10
|
) -> TemplateResponse | None: ...
|
|
@@ -8,6 +8,7 @@ from django.db.models.expressions import BaseExpression
|
|
|
8
8
|
from django.http import HttpRequest, HttpResponse
|
|
9
9
|
|
|
10
10
|
_M = TypeVar("_M", bound=Model)
|
|
11
|
+
_T = TypeVar("_T", bound=object)
|
|
11
12
|
|
|
12
13
|
def action(
|
|
13
14
|
function: (
|
|
@@ -17,7 +18,7 @@ def action(
|
|
|
17
18
|
*,
|
|
18
19
|
permissions: Sequence[str] | None = ...,
|
|
19
20
|
description: str | None = ...,
|
|
20
|
-
) -> Callable[
|
|
21
|
+
) -> Callable[[_T], _T]: ...
|
|
21
22
|
def display(
|
|
22
23
|
function: Callable[[_M], Any] | None = ...,
|
|
23
24
|
*,
|
|
@@ -25,5 +26,5 @@ def display(
|
|
|
25
26
|
ordering: str | Combinable | BaseExpression | None = ...,
|
|
26
27
|
description: str | None = ...,
|
|
27
28
|
empty_value: str | None = ...,
|
|
28
|
-
) -> Callable[
|
|
29
|
-
def register(*models: type[Model], site: Any | None = ...) -> Callable[
|
|
29
|
+
) -> Callable[[_T], _T]: ...
|
|
30
|
+
def register(*models: type[Model], site: Any | None = ...) -> Callable[[_T], _T]: ...
|
|
@@ -2,11 +2,11 @@ from collections.abc import Callable, Iterator
|
|
|
2
2
|
from typing import Any
|
|
3
3
|
|
|
4
4
|
from django.contrib.admin.options import ModelAdmin
|
|
5
|
-
from django.core.handlers.wsgi import WSGIRequest
|
|
6
5
|
from django.db.models.base import Model
|
|
7
6
|
from django.db.models.fields import Field
|
|
8
7
|
from django.db.models.fields.related import RelatedField
|
|
9
8
|
from django.db.models.query import QuerySet
|
|
9
|
+
from django.http.request import HttpRequest
|
|
10
10
|
|
|
11
11
|
class ListFilter:
|
|
12
12
|
title: Any = ...
|
|
@@ -14,7 +14,7 @@ class ListFilter:
|
|
|
14
14
|
used_parameters: Any = ...
|
|
15
15
|
def __init__(
|
|
16
16
|
self,
|
|
17
|
-
request:
|
|
17
|
+
request: HttpRequest,
|
|
18
18
|
params: dict[str, str],
|
|
19
19
|
model: type[Model],
|
|
20
20
|
model_admin: ModelAdmin[Any],
|
|
@@ -39,7 +39,7 @@ class FieldListFilter(ListFilter):
|
|
|
39
39
|
def __init__(
|
|
40
40
|
self,
|
|
41
41
|
field: Field[Any, Any],
|
|
42
|
-
request:
|
|
42
|
+
request: HttpRequest,
|
|
43
43
|
params: dict[str, str],
|
|
44
44
|
model: type[Model],
|
|
45
45
|
model_admin: ModelAdmin[Any],
|
|
@@ -56,7 +56,7 @@ class FieldListFilter(ListFilter):
|
|
|
56
56
|
def create(
|
|
57
57
|
cls,
|
|
58
58
|
field: Field[Any, Any],
|
|
59
|
-
request:
|
|
59
|
+
request: HttpRequest,
|
|
60
60
|
params: dict[str, str],
|
|
61
61
|
model: type[Model],
|
|
62
62
|
model_admin: ModelAdmin[Any],
|
|
@@ -78,7 +78,7 @@ class RelatedFieldListFilter(FieldListFilter):
|
|
|
78
78
|
def field_choices(
|
|
79
79
|
self,
|
|
80
80
|
field: RelatedField[Any, Any],
|
|
81
|
-
request:
|
|
81
|
+
request: HttpRequest,
|
|
82
82
|
model_admin: ModelAdmin[Any],
|
|
83
83
|
) -> list[tuple[str, str]]: ...
|
|
84
84
|
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
from collections.abc import Iterable
|
|
2
2
|
from typing import Any, ClassVar, TypeVar
|
|
3
3
|
from typing_extensions import Self
|
|
4
|
-
from uuid import UUID
|
|
5
4
|
|
|
5
|
+
from django.contrib.auth.models import User
|
|
6
6
|
from django.contrib.contenttypes.models import ContentType
|
|
7
7
|
from django.db import models
|
|
8
|
+
from django.utils import timezone as timezone
|
|
8
9
|
|
|
9
10
|
ADDITION: int
|
|
10
11
|
CHANGE: int
|
|
@@ -14,26 +15,37 @@ ACTION_FLAG_CHOICES: list[tuple[int, str]]
|
|
|
14
15
|
_LogEntryT = TypeVar("_LogEntryT", bound=LogEntry)
|
|
15
16
|
|
|
16
17
|
class LogEntryManager(models.Manager[_LogEntryT]):
|
|
18
|
+
use_in_migrations: bool
|
|
19
|
+
# Deprecated in favor of log_actions
|
|
17
20
|
def log_action(
|
|
18
21
|
self,
|
|
19
22
|
user_id: int,
|
|
20
23
|
content_type_id: int,
|
|
21
|
-
object_id:
|
|
24
|
+
object_id: Any,
|
|
22
25
|
object_repr: str,
|
|
23
26
|
action_flag: int,
|
|
24
27
|
change_message: str | list[Any] = ...,
|
|
25
28
|
) -> _LogEntryT: ...
|
|
29
|
+
def log_actions(
|
|
30
|
+
self,
|
|
31
|
+
user_id: int,
|
|
32
|
+
queryset: Iterable[models.Model],
|
|
33
|
+
action_flag: int,
|
|
34
|
+
change_message: str | list[Any] = ...,
|
|
35
|
+
*,
|
|
36
|
+
single_object: bool = ...,
|
|
37
|
+
) -> _LogEntryT | list[_LogEntryT]: ...
|
|
26
38
|
|
|
27
39
|
class LogEntry(models.Model):
|
|
28
|
-
|
|
40
|
+
action_time = models.DateTimeField()
|
|
41
|
+
user = models.ForeignKey[User]
|
|
42
|
+
content_type = models.ForeignKey[ContentType]
|
|
43
|
+
object_id = models.TextField(blank=True, null=True)
|
|
44
|
+
object_repr = models.CharField()
|
|
45
|
+
action_flag = models.PositiveSmallIntegerField()
|
|
46
|
+
change_message = models.TextField(blank=True)
|
|
29
47
|
|
|
30
|
-
|
|
31
|
-
user: models.ForeignKey[Any]
|
|
32
|
-
content_type: models.ForeignKey[ContentType | None]
|
|
33
|
-
object_id: models.TextField[str | None]
|
|
34
|
-
object_repr: models.CharField[str]
|
|
35
|
-
action_flag: models.PositiveSmallIntegerField[int]
|
|
36
|
-
change_message: models.TextField[str]
|
|
48
|
+
objects: ClassVar[LogEntryManager[Self]] # type: ignore[assignment]
|
|
37
49
|
|
|
38
50
|
def is_addition(self) -> bool: ...
|
|
39
51
|
def is_change(self) -> bool: ...
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
from collections import OrderedDict
|
|
2
|
-
from collections.abc import Callable, Iterator, Mapping, Sequence
|
|
3
|
-
from typing import Any, Generic, TypeVar
|
|
4
|
-
from typing_extensions import
|
|
2
|
+
from collections.abc import Callable, Iterable, Iterator, Mapping, Sequence
|
|
3
|
+
from typing import Any, Generic, Literal, TypeVar
|
|
4
|
+
from typing_extensions import TypedDict
|
|
5
5
|
|
|
6
6
|
from django.contrib.admin.filters import ListFilter
|
|
7
|
+
from django.contrib.admin.helpers import ActionForm
|
|
7
8
|
from django.contrib.admin.models import LogEntry
|
|
8
9
|
from django.contrib.admin.sites import AdminSite
|
|
9
10
|
from django.contrib.admin.views.main import ChangeList
|
|
@@ -16,11 +17,14 @@ from django.db.models.fields import Field
|
|
|
16
17
|
from django.db.models.fields.related import ForeignKey, ManyToManyField, RelatedField
|
|
17
18
|
from django.db.models.options import Options
|
|
18
19
|
from django.db.models.query import QuerySet
|
|
20
|
+
from django.forms.fields import Field as FormField
|
|
19
21
|
from django.forms.fields import TypedChoiceField
|
|
20
22
|
from django.forms.forms import BaseForm
|
|
21
23
|
from django.forms.models import (
|
|
22
24
|
BaseInlineFormSet,
|
|
25
|
+
BaseModelFormSet,
|
|
23
26
|
ModelChoiceField,
|
|
27
|
+
ModelForm,
|
|
24
28
|
ModelMultipleChoiceField,
|
|
25
29
|
)
|
|
26
30
|
from django.forms.widgets import Media
|
|
@@ -81,15 +85,15 @@ class BaseModelAdmin(Generic[_ModelT]):
|
|
|
81
85
|
prepopulated_fields: Mapping[str, Sequence[str]] = ...
|
|
82
86
|
formfield_overrides: Mapping[type[Field[Any, Any]], Mapping[str, Any]] = ...
|
|
83
87
|
readonly_fields: Sequence[str | Callable[[_ModelT], Any]] = ...
|
|
84
|
-
ordering: Sequence[str] = ...
|
|
85
|
-
sortable_by: Sequence[str] = ...
|
|
88
|
+
ordering: Sequence[str] | None = ...
|
|
89
|
+
sortable_by: Sequence[str] | None = ...
|
|
86
90
|
view_on_site: bool = ...
|
|
87
91
|
show_full_result_count: bool = ...
|
|
88
92
|
checks_class: Any = ...
|
|
89
93
|
def check(self, **kwargs: Any) -> list[CheckMessage]: ...
|
|
90
94
|
def formfield_for_dbfield(
|
|
91
95
|
self, db_field: Field[Any, Any], request: HttpRequest | None, **kwargs: Any
|
|
92
|
-
) ->
|
|
96
|
+
) -> FormField | None: ...
|
|
93
97
|
def formfield_for_choice_field(
|
|
94
98
|
self, db_field: Field[Any, Any], request: HttpRequest | None, **kwargs: Any
|
|
95
99
|
) -> TypedChoiceField: ...
|
|
@@ -105,10 +109,12 @@ class BaseModelAdmin(Generic[_ModelT]):
|
|
|
105
109
|
request: HttpRequest | None,
|
|
106
110
|
**kwargs: Any
|
|
107
111
|
) -> ModelMultipleChoiceField: ...
|
|
108
|
-
def get_autocomplete_fields(self, request: HttpRequest) ->
|
|
112
|
+
def get_autocomplete_fields(self, request: HttpRequest) -> Sequence[str]: ...
|
|
109
113
|
def get_view_on_site_url(self, obj: _ModelT | None = ...) -> str | None: ...
|
|
110
114
|
def get_empty_value_display(self) -> SafeText: ...
|
|
111
|
-
def get_exclude(
|
|
115
|
+
def get_exclude(
|
|
116
|
+
self, request: HttpRequest, obj: _ModelT | None = ...
|
|
117
|
+
) -> Sequence[str]: ...
|
|
112
118
|
def get_fields(
|
|
113
119
|
self, request: HttpRequest, obj: _ModelT | None = ...
|
|
114
120
|
) -> Sequence[Callable[..., Any] | str]: ...
|
|
@@ -122,10 +128,13 @@ class BaseModelAdmin(Generic[_ModelT]):
|
|
|
122
128
|
def get_prepopulated_fields(
|
|
123
129
|
self, request: HttpRequest, obj: _ModelT | None = ...
|
|
124
130
|
) -> dict[str, tuple[str]]: ...
|
|
125
|
-
def get_queryset(self, request: HttpRequest) -> QuerySet[
|
|
131
|
+
def get_queryset(self, request: HttpRequest) -> QuerySet[_ModelT]: ...
|
|
126
132
|
def get_sortable_by(
|
|
127
133
|
self, request: HttpRequest
|
|
128
134
|
) -> list[Callable[..., Any]] | list[str] | tuple[Any, ...]: ...
|
|
135
|
+
def get_inlines(
|
|
136
|
+
self, request: HttpRequest, obj: _ModelT | None
|
|
137
|
+
) -> Iterable[type[InlineModelAdmin[Any]]]: ...
|
|
129
138
|
def lookup_allowed(self, lookup: str, value: str) -> bool: ...
|
|
130
139
|
def to_field_allowed(self, request: HttpRequest, to_field: str) -> bool: ...
|
|
131
140
|
def has_add_permission(self, request: HttpRequest) -> bool: ...
|
|
@@ -167,12 +176,12 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
167
176
|
Callable[[ModelAdmin[Any], HttpRequest, QuerySet[Any]], HttpResponse | None]
|
|
168
177
|
| str
|
|
169
178
|
] | None = ...
|
|
170
|
-
action_form:
|
|
179
|
+
action_form: type[ActionForm] = ...
|
|
171
180
|
actions_on_top: bool = ...
|
|
172
181
|
actions_on_bottom: bool = ...
|
|
173
182
|
actions_selection_counter: bool = ...
|
|
174
183
|
model: type[_ModelT] = ...
|
|
175
|
-
opts: Options[
|
|
184
|
+
opts: Options[_ModelT] = ...
|
|
176
185
|
admin_site: AdminSite = ...
|
|
177
186
|
def __init__(self, model: type[_ModelT], admin_site: AdminSite | None) -> None: ...
|
|
178
187
|
def get_inline_instances(
|
|
@@ -185,8 +194,12 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
185
194
|
def media(self) -> Media: ...
|
|
186
195
|
def get_model_perms(self, request: HttpRequest) -> dict[str, bool]: ...
|
|
187
196
|
def get_form(
|
|
188
|
-
self,
|
|
189
|
-
|
|
197
|
+
self,
|
|
198
|
+
request: HttpRequest,
|
|
199
|
+
obj: _ModelT | None = ...,
|
|
200
|
+
change: bool = ...,
|
|
201
|
+
**kwargs: Any
|
|
202
|
+
) -> type[ModelForm]: ...
|
|
190
203
|
def get_changelist(
|
|
191
204
|
self, request: HttpRequest, **kwargs: Any
|
|
192
205
|
) -> type[ChangeList]: ...
|
|
@@ -194,15 +207,19 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
194
207
|
def get_object(
|
|
195
208
|
self, request: HttpRequest, object_id: str, from_field: None = ...
|
|
196
209
|
) -> _ModelT | None: ...
|
|
197
|
-
def get_changelist_form(
|
|
198
|
-
|
|
210
|
+
def get_changelist_form(
|
|
211
|
+
self, request: HttpRequest, **kwargs: Any
|
|
212
|
+
) -> type[ModelForm]: ...
|
|
213
|
+
def get_changelist_formset(
|
|
214
|
+
self, request: HttpRequest, **kwargs: Any
|
|
215
|
+
) -> type[BaseModelFormSet]: ...
|
|
199
216
|
def get_formsets_with_inlines(
|
|
200
217
|
self, request: HttpRequest, obj: _ModelT | None = ...
|
|
201
218
|
) -> Iterator[Any]: ...
|
|
202
219
|
def get_paginator(
|
|
203
220
|
self,
|
|
204
221
|
request: HttpRequest,
|
|
205
|
-
queryset: QuerySet[
|
|
222
|
+
queryset: QuerySet[_ModelT],
|
|
206
223
|
per_page: int,
|
|
207
224
|
orphans: int = ...,
|
|
208
225
|
allow_empty_first_page: bool = ...,
|
|
@@ -235,12 +252,6 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
235
252
|
self, request: HttpRequest, queryset: QuerySet[Any], search_term: str
|
|
236
253
|
) -> tuple[QuerySet[Any], bool]: ...
|
|
237
254
|
def get_preserved_filters(self, request: HttpRequest) -> str: ...
|
|
238
|
-
def _get_edited_object_pks(
|
|
239
|
-
self, request: HttpRequest, prefix: str
|
|
240
|
-
) -> list[str]: ...
|
|
241
|
-
def _get_list_editable_queryset(
|
|
242
|
-
self, request: HttpRequest, prefix: str
|
|
243
|
-
) -> QuerySet[Any]: ...
|
|
244
255
|
def construct_change_message(
|
|
245
256
|
self,
|
|
246
257
|
request: HttpRequest,
|
|
@@ -256,29 +267,39 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
256
267
|
extra_tags: str = ...,
|
|
257
268
|
fail_silently: bool = ...,
|
|
258
269
|
) -> None: ...
|
|
259
|
-
def save_form(
|
|
270
|
+
def save_form(
|
|
271
|
+
self, request: HttpRequest, form: ModelForm, change: bool
|
|
272
|
+
) -> _ModelT: ...
|
|
260
273
|
def save_model(
|
|
261
|
-
self, request:
|
|
274
|
+
self, request: HttpRequest, obj: _ModelT, form: ModelForm, change: bool
|
|
262
275
|
) -> None: ...
|
|
263
276
|
def delete_model(self, request: HttpRequest, obj: _ModelT) -> None: ...
|
|
264
277
|
def delete_queryset(
|
|
265
|
-
self, request: HttpRequest, queryset: QuerySet[
|
|
278
|
+
self, request: HttpRequest, queryset: QuerySet[_ModelT]
|
|
266
279
|
) -> None: ...
|
|
267
280
|
def save_formset(
|
|
268
|
-
self,
|
|
281
|
+
self,
|
|
282
|
+
request: HttpRequest,
|
|
283
|
+
form: ModelForm,
|
|
284
|
+
formset: BaseModelFormSet,
|
|
285
|
+
change: bool,
|
|
269
286
|
) -> None: ...
|
|
270
287
|
def save_related(
|
|
271
|
-
self,
|
|
288
|
+
self,
|
|
289
|
+
request: HttpRequest,
|
|
290
|
+
form: ModelForm,
|
|
291
|
+
formsets: BaseModelFormSet,
|
|
292
|
+
change: bool,
|
|
272
293
|
) -> None: ...
|
|
273
294
|
def render_change_form(
|
|
274
295
|
self,
|
|
275
|
-
request:
|
|
276
|
-
context: Any,
|
|
296
|
+
request: HttpRequest,
|
|
297
|
+
context: Mapping[str, Any],
|
|
277
298
|
add: bool = ...,
|
|
278
299
|
change: bool = ...,
|
|
279
300
|
form_url: str = ...,
|
|
280
301
|
obj: _ModelT | None = ...,
|
|
281
|
-
) ->
|
|
302
|
+
) -> TemplateResponse: ...
|
|
282
303
|
def response_add(
|
|
283
304
|
self, request: HttpRequest, obj: _ModelT, post_url_continue: str | None = ...
|
|
284
305
|
) -> HttpResponse: ...
|
|
@@ -290,12 +311,14 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
290
311
|
self, request: HttpRequest, obj: _ModelT
|
|
291
312
|
) -> HttpResponseRedirect: ...
|
|
292
313
|
def response_action(
|
|
293
|
-
self, request: HttpRequest, queryset: QuerySet[
|
|
314
|
+
self, request: HttpRequest, queryset: QuerySet[_ModelT]
|
|
294
315
|
) -> HttpResponseBase | None: ...
|
|
295
316
|
def response_delete(
|
|
296
317
|
self, request: HttpRequest, obj_display: str, obj_id: int
|
|
297
318
|
) -> HttpResponse: ...
|
|
298
|
-
def render_delete_form(
|
|
319
|
+
def render_delete_form(
|
|
320
|
+
self, request: HttpRequest, context: Mapping[str, Any]
|
|
321
|
+
) -> TemplateResponse: ...
|
|
299
322
|
def get_inline_formsets(
|
|
300
323
|
self,
|
|
301
324
|
request: HttpRequest,
|
|
@@ -310,7 +333,7 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
310
333
|
object_id: str | None = ...,
|
|
311
334
|
form_url: str = ...,
|
|
312
335
|
extra_context: dict[str, bool] | None = ...,
|
|
313
|
-
) ->
|
|
336
|
+
) -> TemplateResponse: ...
|
|
314
337
|
def autocomplete_view(self, request: HttpRequest) -> JsonResponse: ...
|
|
315
338
|
def add_view(
|
|
316
339
|
self, request: HttpRequest, form_url: str = ..., extra_context: None = ...
|
|
@@ -329,10 +352,16 @@ class ModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
329
352
|
self, objs: QuerySet[Any], request: HttpRequest
|
|
330
353
|
) -> tuple[list[Any], dict[Any, Any], set[Any], list[Any]]: ...
|
|
331
354
|
def delete_view(
|
|
332
|
-
self,
|
|
333
|
-
|
|
355
|
+
self,
|
|
356
|
+
request: HttpRequest,
|
|
357
|
+
object_id: str,
|
|
358
|
+
extra_context: dict[str, str] | None = ...,
|
|
359
|
+
) -> HttpResponse: ...
|
|
334
360
|
def history_view(
|
|
335
|
-
self,
|
|
361
|
+
self,
|
|
362
|
+
request: HttpRequest,
|
|
363
|
+
object_id: str,
|
|
364
|
+
extra_context: dict[str, str] | None = ...,
|
|
336
365
|
) -> HttpResponse: ...
|
|
337
366
|
def get_formset_kwargs(
|
|
338
367
|
self,
|
|
@@ -374,8 +403,8 @@ class InlineModelAdmin(BaseModelAdmin[_ModelT]):
|
|
|
374
403
|
self, request: HttpRequest, obj: _ModelT | None = ..., **kwargs: Any
|
|
375
404
|
) -> int | None: ...
|
|
376
405
|
def get_formset(
|
|
377
|
-
self, request:
|
|
378
|
-
) ->
|
|
406
|
+
self, request: HttpRequest, obj: _ModelT | None = ..., **kwargs: Any
|
|
407
|
+
) -> type[BaseInlineFormSet]: ...
|
|
379
408
|
|
|
380
409
|
class StackedInline(InlineModelAdmin[_ModelT]): ...
|
|
381
410
|
class TabularInline(InlineModelAdmin[_ModelT]): ...
|
|
@@ -3,8 +3,8 @@ from typing import Any
|
|
|
3
3
|
|
|
4
4
|
from django.apps.config import AppConfig
|
|
5
5
|
from django.contrib.admin.options import ModelAdmin
|
|
6
|
-
from django.core.handlers.wsgi import WSGIRequest
|
|
7
6
|
from django.db.models.base import Model
|
|
7
|
+
from django.http.request import HttpRequest
|
|
8
8
|
from django.http.response import HttpResponse
|
|
9
9
|
from django.template.response import TemplateResponse
|
|
10
10
|
from django.urls.resolvers import URLResolver
|
|
@@ -53,7 +53,7 @@ class AdminSite:
|
|
|
53
53
|
def empty_value_display(self) -> Any: ...
|
|
54
54
|
@empty_value_display.setter
|
|
55
55
|
def empty_value_display(self, empty_value_display: Any) -> None: ...
|
|
56
|
-
def has_permission(self, request:
|
|
56
|
+
def has_permission(self, request: HttpRequest) -> bool: ...
|
|
57
57
|
def admin_view(
|
|
58
58
|
self, view: Callable[..., Any], cacheable: bool = ...
|
|
59
59
|
) -> Callable[..., Any]: ...
|
|
@@ -62,30 +62,30 @@ class AdminSite:
|
|
|
62
62
|
def urls(self) -> tuple[list[URLResolver], str, str]: ...
|
|
63
63
|
def each_context(self, request: Any) -> Any: ...
|
|
64
64
|
def password_change(
|
|
65
|
-
self, request:
|
|
65
|
+
self, request: HttpRequest, extra_context: dict[str, Any] | None = ...
|
|
66
66
|
) -> TemplateResponse: ...
|
|
67
67
|
def password_change_done(
|
|
68
|
-
self, request:
|
|
68
|
+
self, request: HttpRequest, extra_context: dict[str, Any] | None = ...
|
|
69
69
|
) -> TemplateResponse: ...
|
|
70
70
|
def i18n_javascript(
|
|
71
|
-
self, request:
|
|
71
|
+
self, request: HttpRequest, extra_context: dict[Any, Any] | None = ...
|
|
72
72
|
) -> HttpResponse: ...
|
|
73
73
|
def logout(
|
|
74
|
-
self, request:
|
|
74
|
+
self, request: HttpRequest, extra_context: dict[str, Any] | None = ...
|
|
75
75
|
) -> TemplateResponse: ...
|
|
76
76
|
def login(
|
|
77
|
-
self, request:
|
|
77
|
+
self, request: HttpRequest, extra_context: dict[str, Any] | None = ...
|
|
78
78
|
) -> HttpResponse: ...
|
|
79
79
|
def _build_app_dict(
|
|
80
|
-
self, request:
|
|
80
|
+
self, request: HttpRequest, label: str | None = ...
|
|
81
81
|
) -> dict[str, Any]: ...
|
|
82
|
-
def get_app_list(self, request:
|
|
82
|
+
def get_app_list(self, request: HttpRequest) -> list[Any]: ...
|
|
83
83
|
def index(
|
|
84
|
-
self, request:
|
|
84
|
+
self, request: HttpRequest, extra_context: dict[str, Any] | None = ...
|
|
85
85
|
) -> TemplateResponse: ...
|
|
86
86
|
def app_index(
|
|
87
87
|
self,
|
|
88
|
-
request:
|
|
88
|
+
request: HttpRequest,
|
|
89
89
|
app_label: str,
|
|
90
90
|
extra_context: dict[str, Any] | None = ...,
|
|
91
91
|
) -> TemplateResponse: ...
|
|
@@ -10,7 +10,7 @@ class InclusionAdminNode(InclusionNode):
|
|
|
10
10
|
args: list[Any]
|
|
11
11
|
func: Callable[..., Any]
|
|
12
12
|
kwargs: dict[Any, Any]
|
|
13
|
-
takes_context: bool
|
|
13
|
+
takes_context: bool # pyright: ignore[reportIncompatibleVariableOverride]
|
|
14
14
|
template_name: str = ...
|
|
15
15
|
def __init__(
|
|
16
16
|
self,
|
|
@@ -7,7 +7,6 @@ from uuid import UUID
|
|
|
7
7
|
from django.contrib.admin.options import BaseModelAdmin
|
|
8
8
|
from django.contrib.admin.sites import AdminSite
|
|
9
9
|
from django.contrib.auth.forms import AdminPasswordChangeForm
|
|
10
|
-
from django.core.handlers.wsgi import WSGIRequest
|
|
11
10
|
from django.db.models.base import Model
|
|
12
11
|
from django.db.models.deletion import Collector
|
|
13
12
|
from django.db.models.fields import Field, reverse_related
|
|
@@ -15,6 +14,7 @@ from django.db.models.fields.reverse_related import ManyToOneRel
|
|
|
15
14
|
from django.db.models.options import Options
|
|
16
15
|
from django.db.models.query import QuerySet
|
|
17
16
|
from django.forms.forms import BaseForm
|
|
17
|
+
from django.http.request import HttpRequest
|
|
18
18
|
|
|
19
19
|
class FieldIsAForeignKeyColumnName(Exception): ...
|
|
20
20
|
|
|
@@ -25,7 +25,7 @@ def unquote(s: str) -> str: ...
|
|
|
25
25
|
def flatten(fields: Any) -> list[Callable[..., Any] | str]: ...
|
|
26
26
|
def flatten_fieldsets(fieldsets: Any) -> list[Callable[..., Any] | str]: ...
|
|
27
27
|
def get_deleted_objects(
|
|
28
|
-
objs: Sequence[Model | None], request:
|
|
28
|
+
objs: Sequence[Model | None], request: HttpRequest, admin_site: AdminSite
|
|
29
29
|
) -> tuple[list[Any], dict[Any, Any], set[Any], list[Any]]: ...
|
|
30
30
|
|
|
31
31
|
class NestedObjects(Collector):
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
from typing import Any
|
|
2
2
|
|
|
3
3
|
from django.contrib.admin.options import ModelAdmin
|
|
4
|
-
from django.
|
|
4
|
+
from django.http.request import HttpRequest
|
|
5
5
|
from django.views.generic.list import BaseListView
|
|
6
6
|
|
|
7
7
|
class AutocompleteJsonView(BaseListView):
|
|
8
8
|
model_admin: ModelAdmin[Any] = ...
|
|
9
9
|
term: Any = ...
|
|
10
|
-
def has_perm(self, request:
|
|
10
|
+
def has_perm(self, request: HttpRequest, obj: None = ...) -> bool: ...
|
|
@@ -6,12 +6,13 @@ from django.contrib.admin.filters import ListFilter, SimpleListFilter
|
|
|
6
6
|
from django.contrib.admin.options import IS_POPUP_VAR as IS_POPUP_VAR # noqa: F401
|
|
7
7
|
from django.contrib.admin.options import TO_FIELD_VAR as TO_FIELD_VAR
|
|
8
8
|
from django.contrib.admin.options import ModelAdmin
|
|
9
|
-
from django.core.handlers.wsgi import WSGIRequest
|
|
10
9
|
from django.db.models.base import Model
|
|
11
10
|
from django.db.models.expressions import Combinable, CombinedExpression, OrderBy
|
|
12
11
|
from django.db.models.options import Options
|
|
13
12
|
from django.db.models.query import QuerySet
|
|
14
13
|
from django.forms.formsets import BaseFormSet
|
|
14
|
+
from django.forms.models import ModelForm
|
|
15
|
+
from django.http.request import HttpRequest
|
|
15
16
|
|
|
16
17
|
ALL_VAR: str
|
|
17
18
|
ORDER_VAR: str
|
|
@@ -47,10 +48,10 @@ class ChangeList:
|
|
|
47
48
|
queryset: Any = ...
|
|
48
49
|
title: Any = ...
|
|
49
50
|
pk_attname: Any = ...
|
|
50
|
-
formset: BaseFormSet | None
|
|
51
|
+
formset: BaseFormSet[ModelForm] | None
|
|
51
52
|
def __init__(
|
|
52
53
|
self,
|
|
53
|
-
request:
|
|
54
|
+
request: HttpRequest,
|
|
54
55
|
model: type[Model],
|
|
55
56
|
list_display: list[Callable[..., Any] | str] | tuple[str],
|
|
56
57
|
list_display_links: list[Callable[..., Any]] | list[str] | tuple[str] | None,
|
|
@@ -66,7 +67,7 @@ class ChangeList:
|
|
|
66
67
|
) -> None: ...
|
|
67
68
|
def get_filters_params(self, params: None = ...) -> dict[str, str]: ...
|
|
68
69
|
def get_filters(
|
|
69
|
-
self, request:
|
|
70
|
+
self, request: HttpRequest
|
|
70
71
|
) -> tuple[list[ListFilter], bool, dict[str, bool | str], bool]: ...
|
|
71
72
|
def get_query_string(
|
|
72
73
|
self,
|
|
@@ -81,15 +82,15 @@ class ChangeList:
|
|
|
81
82
|
can_show_all: Any = ...
|
|
82
83
|
multi_page: Any = ...
|
|
83
84
|
paginator: Any = ...
|
|
84
|
-
def get_results(self, request:
|
|
85
|
+
def get_results(self, request: HttpRequest) -> None: ...
|
|
85
86
|
def get_ordering_field(
|
|
86
87
|
self, field_name: Callable[..., Any] | str
|
|
87
88
|
) -> CombinedExpression | str | None: ...
|
|
88
89
|
def get_ordering(
|
|
89
|
-
self, request:
|
|
90
|
+
self, request: HttpRequest, queryset: QuerySet[Any]
|
|
90
91
|
) -> list[OrderBy | Combinable | str]: ...
|
|
91
92
|
def get_ordering_field_columns(self) -> OrderedDict[Any, Any]: ...
|
|
92
|
-
def get_queryset(self, request:
|
|
93
|
+
def get_queryset(self, request: HttpRequest) -> QuerySet[Any]: ...
|
|
93
94
|
def apply_select_related(self, qs: QuerySet[Any]) -> QuerySet[Any]: ...
|
|
94
95
|
def has_related_field_in_list_display(self) -> bool: ...
|
|
95
96
|
def url_for_result(self, result: Model) -> str: ...
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
from collections.abc import Callable
|
|
2
2
|
from typing import Any
|
|
3
3
|
|
|
4
|
-
from django.
|
|
4
|
+
from django.http.request import HttpRequest
|
|
5
5
|
from django.http.response import HttpResponse
|
|
6
6
|
from django.utils.deprecation import MiddlewareMixin
|
|
7
7
|
|
|
8
8
|
class XViewMiddleware(MiddlewareMixin):
|
|
9
9
|
def process_view(
|
|
10
10
|
self,
|
|
11
|
-
request:
|
|
11
|
+
request: HttpRequest,
|
|
12
12
|
view_func: Callable[..., Any],
|
|
13
13
|
view_args: tuple[Any, ...],
|
|
14
14
|
view_kwargs: dict[Any, Any],
|
|
@@ -2,7 +2,7 @@ from typing import Any
|
|
|
2
2
|
|
|
3
3
|
from django.contrib.auth.backends import ModelBackend
|
|
4
4
|
from django.contrib.auth.base_user import AbstractBaseUser
|
|
5
|
-
from django.contrib.auth.models import AnonymousUser
|
|
5
|
+
from django.contrib.auth.models import AbstractUser, AnonymousUser
|
|
6
6
|
from django.db.models.options import Options
|
|
7
7
|
from django.http.request import HttpRequest
|
|
8
8
|
from django.test.client import Client
|
|
@@ -18,15 +18,25 @@ REDIRECT_FIELD_NAME: str
|
|
|
18
18
|
|
|
19
19
|
def load_backend(path: str) -> ModelBackend: ...
|
|
20
20
|
def get_backends() -> list[ModelBackend]: ...
|
|
21
|
-
def authenticate(
|
|
21
|
+
def authenticate(
|
|
22
|
+
request: HttpRequest | None = ..., **credentials: Any
|
|
23
|
+
) -> AbstractUser | None: ...
|
|
22
24
|
def login(
|
|
23
25
|
request: HttpRequest,
|
|
24
26
|
user: AbstractBaseUser | None,
|
|
25
27
|
backend: type[ModelBackend] | str | None = ...,
|
|
26
28
|
) -> None: ...
|
|
27
29
|
def logout(request: HttpRequest) -> None: ...
|
|
28
|
-
def
|
|
29
|
-
|
|
30
|
+
async def aauthenticate(
|
|
31
|
+
request: HttpRequest = ..., **credentials: Any
|
|
32
|
+
) -> AbstractBaseUser | None: ...
|
|
33
|
+
async def alogin(
|
|
34
|
+
request: HttpRequest,
|
|
35
|
+
user: AbstractBaseUser | None,
|
|
36
|
+
backend: type[ModelBackend] | str | None = ...,
|
|
37
|
+
) -> None: ...
|
|
38
|
+
def get_user_model() -> type[AbstractUser]: ...
|
|
39
|
+
def get_user(request: HttpRequest | Client) -> AbstractUser | AnonymousUser: ...
|
|
30
40
|
def get_permission_codename(action: str, opts: Options[Any]) -> str: ...
|
|
31
41
|
def update_session_auth_hash(request: HttpRequest, user: AbstractBaseUser) -> None: ...
|
|
32
42
|
|
|
@@ -2,7 +2,7 @@ from collections.abc import Callable
|
|
|
2
2
|
from typing import Any, TypeVar
|
|
3
3
|
|
|
4
4
|
from django.contrib import admin
|
|
5
|
-
from django.
|
|
5
|
+
from django.http.request import HttpRequest
|
|
6
6
|
from django.http.response import HttpResponse
|
|
7
7
|
|
|
8
8
|
_F = TypeVar("_F", bound=Callable[..., Any])
|
|
@@ -18,5 +18,5 @@ class UserAdmin(admin.ModelAdmin[Any]):
|
|
|
18
18
|
add_form: Any = ...
|
|
19
19
|
change_password_form: Any = ...
|
|
20
20
|
def user_change_password(
|
|
21
|
-
self, request:
|
|
21
|
+
self, request: HttpRequest, id: str, form_url: str = ...
|
|
22
22
|
) -> HttpResponse: ...
|