﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
31527	Admindocs' View index assumes settings.ROOT_URLCONF is an import string	Keryn Knight	Qihao(Jim) Xie	"Currently, the code looks like:
{{{
urlconf = import_module(settings.ROOT_URLCONF)
view_functions = extract_views_from_urlpatterns(urlconf.urlpatterns)
}}}

Buuuuuuuut, it's possible to get Django to otherwise run with, for example, something like:
{{{
def urlpatterns():
    from django.urls import path
    from django.contrib import admin
    return (
        path(""admin/"", admin.site.urls),
    )

ROOT_URLCONF = SimpleLazyObject(urlpatterns)
}}}

which will happily pass through the checks framework, and runserver (and gunicorn), and let you use Django as you otherwise would... except for navigating to `django.contrib.admindocs.views.ViewIndexView` (for example, routed at `/admin/doc/views/`) where you'll instead encounter an exception like:
{{{
File ""/path/to/python3.7/site-packages/django/contrib/admindocs/views.py"" in dispatch
  46.         return super().dispatch(request, *args, **kwargs)

File ""/path/to/python3.7/site-packages/django/views/generic/base.py"" in dispatch
  97.         return handler(request, *args, **kwargs)

File ""/path/to/python3.7/site-packages/django/views/generic/base.py"" in get
  158.         context = self.get_context_data(**kwargs)

File ""/path/to/python3.7/site-packages/django/contrib/admindocs/views.py"" in get_context_data
  139.         urlconf = import_module(settings.ROOT_URLCONF)

File ""/path/to/python3.7/importlib/__init__.py"" in import_module
  118.     if name.startswith('.'):

File ""/path/to/python3.7/site-packages/django/utils/functional.py"" in inner
  257.         return func(self._wrapped, *args)


Exception Type: AttributeError at /admin/doc/views/
Exception Value: 'tuple' object has no attribute 'startswith'
}}}"	Cleanup/optimization	closed	contrib.admindocs	dev	Normal	fixed			Ready for checkin	1	0	0	0	0	0
