1 | | This seems to be different from https://code.djangoproject.com/ticket/32150 as it's about the ordering of installed apps, not urls. |
2 | | https://code.djangoproject.com/ticket/33955 could be related? |
3 | | |
4 | | It also seems to be a regression: this works fine in 4.0 but not in 4.1 / main. |
5 | | |
6 | | This does not work, but if you reverse the order it works fine: |
7 | | |
8 | | {{{ |
9 | | #!python |
10 | | INSTALLED_APPS = [ |
11 | | ... |
12 | | "django.contrib.admindocs", |
13 | | "django.contrib.admin", |
14 | | ] |
15 | | }}} |
16 | | |
17 | | With the error: |
18 | | |
19 | | {{{ |
20 | | Environment: |
21 | | |
22 | | |
23 | | Request Method: GET |
24 | | Request URL: http://localhost:8000/admin/ |
25 | | |
26 | | Django Version: 4.2.dev20220901073912 |
27 | | Python Version: 3.10.0 |
28 | | Installed Applications: |
29 | | ['django.contrib.admindocs', |
30 | | 'django.contrib.admin', |
31 | | 'django.contrib.auth', |
32 | | 'django.contrib.contenttypes', |
33 | | 'django.contrib.sessions', |
34 | | 'django.contrib.messages', |
35 | | 'django.contrib.staticfiles'] |
36 | | Installed Middleware: |
37 | | ['django.middleware.security.SecurityMiddleware', |
38 | | 'django.contrib.sessions.middleware.SessionMiddleware', |
39 | | 'django.middleware.common.CommonMiddleware', |
40 | | 'django.middleware.csrf.CsrfViewMiddleware', |
41 | | 'django.contrib.auth.middleware.AuthenticationMiddleware', |
42 | | 'django.contrib.messages.middleware.MessageMiddleware', |
43 | | 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
44 | | |
45 | | |
46 | | |
47 | | Traceback (most recent call last): |
48 | | File "/Users/tom/work/oss/django/django/core/handlers/exception.py", line 55, in inner |
49 | | response = get_response(request) |
50 | | File "/Users/tom/work/oss/django/django/core/handlers/base.py", line 197, in _get_response |
51 | | response = wrapped_callback(request, *callback_args, **callback_kwargs) |
52 | | File "/Users/tom/work/oss/django/django/contrib/admin/sites.py", line 261, in wrapper |
53 | | return self.admin_view(view, cacheable)(*args, **kwargs) |
54 | | File "/Users/tom/work/oss/django/django/utils/decorators.py", line 133, in _wrapper_view |
55 | | response = view_func(request, *args, **kwargs) |
56 | | File "/Users/tom/work/oss/django/django/views/decorators/cache.py", line 62, in _wrapper_view_func |
57 | | response = view_func(request, *args, **kwargs) |
58 | | File "/Users/tom/work/oss/django/django/contrib/admin/sites.py", line 242, in inner |
59 | | return view(request, *args, **kwargs) |
60 | | File "/Users/tom/work/oss/django/django/contrib/admin/sites.py", line 552, in index |
61 | | app_list = self.get_app_list(request) |
62 | | File "/Users/tom/work/oss/django/django/contrib/admin/sites.py", line 536, in get_app_list |
63 | | app_dict = self._build_app_dict(request, app_label) |
64 | | File "/Users/tom/work/oss/django/django/contrib/admin/sites.py", line 520, in _build_app_dict |
65 | | "app_url": reverse( |
66 | | File "/Users/tom/work/oss/django/django/urls/base.py", line 88, in reverse |
67 | | return resolver._reverse_with_prefix(view, prefix, *args, **kwargs) |
68 | | File "/Users/tom/work/oss/django/django/urls/resolvers.py", line 803, in _reverse_with_prefix |
69 | | raise NoReverseMatch(msg) |
70 | | |
71 | | Exception Type: NoReverseMatch at /admin/ |
72 | | Exception Value: Reverse for 'app_list' not found. 'app_list' is not a valid view function or pattern name. |
73 | | }}} |