8000 fix: preserve `view_class` in decorated views · django-cms/django-cms@f8499b2 · GitHub
[go: up one dir, main page]

Skip to content

Commit f8499b2

Browse files
Will-Hoeymarksweb
authored andcommitted
fix: preserve view_class in decorated views
- set `view_class` attr on inner - update regression test to always check for "ClassBasedView"
1 parent 315340f commit f8499b2

File tree

2 files changed

+4
-2
lines changed

2 files changed

+4
-2
lines changed

cms/tests/test_apphooks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from cms.test_utils.testcases import CMSTestCase
2727
from cms.tests.test_menu_utils import DumbPageLanguageUrl
2828
from cms.toolbar.toolbar import CMSToolbar
29-
from cms.utils.compat import DJANGO_2_2, DJANGO_3
29+
from cms.utils.compat import DJANGO_2_2, DJANGO_3, DJANGO_4_1
3030
from cms.utils.conf import get_cms_setting
3131
from cms.utils.urlutils import admin_reverse
3232
from menus.menu_pool import menu_pool
@@ -307,7 +307,7 @@ def test_apphook_permissions_preserves_view_name(self):
307307
view_names = (
308308
('sample-settings', 'sample_view'),
309309
('sample-class-view', 'ClassView'),
310-
('sample-class-based-view', 'view' if not (DJANGO_3 or DJANGO_2_2) else 'ClassBasedView' ),
310+
('sample-class-based-view', 'ClassBasedView' ),
311311
)
312312

313313
with force_language("en"):

cms/utils/decorators.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ def inner(request, *args, **kwargs):
2020
return func(request, *args, **kwargs)
2121
inner.__module__ = func.__module__
2222
inner.__doc__ = func.__doc__
23+
if hasattr(func, "view_class"):
24+
inner.view_class = func.view_class
2325
if hasattr(func, '__name__'):
2426
inner.__name__ = func.__name__
2527
elif hasattr(func, '__class__'):

0 commit comments

Comments
 (0)
0