mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-14 15:57:08 +08:00
Monkeypatch some more generics. (#1050)
* Add generic monkeypatching for `FileProxyMixin`. This fixes `TypeError: 'type' object is not subscriptable` for `django.core.files.File` and `django.core.files.base.ContentFile`. * Add generic monkeypatching for `ForeignKey`. This matches the change coming in Django 4.1. See https://github.com/django/django/pull/15571
This commit is contained in:
@@ -4,8 +4,10 @@ from django import VERSION as VERSION
|
|||||||
from django.contrib.admin import ModelAdmin
|
from django.contrib.admin import ModelAdmin
|
||||||
from django.contrib.admin.options import BaseModelAdmin
|
from django.contrib.admin.options import BaseModelAdmin
|
||||||
from django.contrib.syndication.views import Feed
|
from django.contrib.syndication.views import Feed
|
||||||
|
from django.core.files.utils import FileProxyMixin
|
||||||
from django.core.paginator import Paginator
|
from django.core.paginator import Paginator
|
||||||
from django.db.models.fields import Field
|
from django.db.models.fields import Field
|
||||||
|
from django.db.models.fields.related import ForeignKey
|
||||||
from django.db.models.manager import BaseManager
|
from django.db.models.manager import BaseManager
|
||||||
from django.db.models.query import QuerySet
|
from django.db.models.query import QuerySet
|
||||||
from django.forms.formsets import BaseFormSet
|
from django.forms.formsets import BaseFormSet
|
||||||
@@ -54,9 +56,12 @@ _need_generic: List[MPGeneric[Any]] = [
|
|||||||
MPGeneric(BaseModelForm),
|
MPGeneric(BaseModelForm),
|
||||||
MPGeneric(BaseModelFormSet),
|
MPGeneric(BaseModelFormSet),
|
||||||
MPGeneric(Feed),
|
MPGeneric(Feed),
|
||||||
|
MPGeneric(FileProxyMixin),
|
||||||
# These types do have native `__class_getitem__` method since django 3.1:
|
# These types do have native `__class_getitem__` method since django 3.1:
|
||||||
MPGeneric(QuerySet, (3, 1)),
|
MPGeneric(QuerySet, (3, 1)),
|
||||||
MPGeneric(BaseManager, (3, 1)),
|
MPGeneric(BaseManager, (3, 1)),
|
||||||
|
# These types do have native `__class_getitem__` method since django 4.1:
|
||||||
|
MPGeneric(ForeignKey, (4, 1)),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -82,6 +82,8 @@ def test_patched_extra_classes_generics(make_generic_classes: _MakeGenericClasse
|
|||||||
(3, 0),
|
(3, 0),
|
||||||
(3, 1),
|
(3, 1),
|
||||||
(3, 2),
|
(3, 2),
|
||||||
|
(4, 0),
|
||||||
|
(4, 1),
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
def test_patched_version_specific(
|
def test_patched_version_specific(
|
||||||
|
|||||||
Reference in New Issue
Block a user