Patch detail and list generic view base classes (#642)

Similar to the already patched `FormMixin`, the detail and list generic view classes are also missing __class_getitem__ and choke when you try to use their generics.
This commit is contained in:
Chris Beaven
2021-06-16 19:32:47 +12:00
committed by GitHub
parent f182b39c91
commit acfe0ce820

View File

@@ -7,7 +7,9 @@ from django.contrib.admin.options import BaseModelAdmin
from django.db.models.fields import Field
from django.db.models.manager import BaseManager
from django.db.models.query import QuerySet
from django.views.generic.detail import SingleObjectMixin
from django.views.generic.edit import FormMixin
from django.views.generic.list import MultipleObjectMixin
_T = TypeVar("_T")
_VersionSpec = Tuple[int, int]
@@ -38,7 +40,9 @@ class MPGeneric(Generic[_T]):
# this list stores them so `monkeypatch` can fix them when called
_need_generic: List[MPGeneric[Any]] = [
MPGeneric(ModelAdmin),
MPGeneric(SingleObjectMixin),
MPGeneric(FormMixin),
MPGeneric(MultipleObjectMixin),
MPGeneric(BaseModelAdmin),
MPGeneric(Field),
# These types do have native `__class_getitem__` method since django 3.1: