mirror of
https://github.com/davidhalter/django-stubs.git
synced 2025-12-15 00:07:09 +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.options import BaseModelAdmin
|
||||
from django.contrib.syndication.views import Feed
|
||||
from django.core.files.utils import FileProxyMixin
|
||||
from django.core.paginator import Paginator
|
||||
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.query import QuerySet
|
||||
from django.forms.formsets import BaseFormSet
|
||||
@@ -54,9 +56,12 @@ _need_generic: List[MPGeneric[Any]] = [
|
||||
MPGeneric(BaseModelForm),
|
||||
MPGeneric(BaseModelFormSet),
|
||||
MPGeneric(Feed),
|
||||
MPGeneric(FileProxyMixin),
|
||||
# These types do have native `__class_getitem__` method since django 3.1:
|
||||
MPGeneric(QuerySet, (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, 1),
|
||||
(3, 2),
|
||||
(4, 0),
|
||||
(4, 1),
|
||||
],
|
||||
)
|
||||
def test_patched_version_specific(
|
||||
|
||||
Reference in New Issue
Block a user