Reputation:
I have just set up virtualenv and then created a new app, called "app1", under a new project, "devp1". I have edited the files as the following:
views.py in in "app1" dir
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def home(request):
return HttpResponse("wow my first page")
settings.py in "devp1" dir
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app1',
]
url.py in "devp1" dir
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'','app1.views.home'),
]
However, when I run the server, I receiving the following error, I have not found why it is not able to see "app1".
Unhandled exception in thread started by <function check_errors.<locals>.wrapper at 0x7f7ab830b400>
Traceback (most recent call last):
File "/home/usr1/dev/lib/python3.4/site-packages/django/utils/autoreload.py", line 227, in wrapper
fn(*args, **kwargs)
File "/home/usr1/dev/lib/python3.4/site-packages/django/core/management/commands/runserver.py", line 125, in inner_run
self.check(display_num_errors=True)
File "/home/usr1/dev/lib/python3.4/site-packages/django/core/management/base.py", line 359, in check
include_deployment_checks=include_deployment_checks,
File "/home/usr1/dev/lib/python3.4/site-packages/django/core/management/base.py", line 346, in _run_checks
return checks.run_checks(**kwargs)
File "/home/usr1/dev/lib/python3.4/site-packages/django/core/checks/registry.py", line 81, in run_checks
new_errors = check(app_configs=app_configs)
File "/home/usr1/dev/lib/python3.4/site-packages/django/core/checks/urls.py", line 16, in check_url_config
return check_resolver(resolver)
File "/home/usr1/dev/lib/python3.4/site-packages/django/core/checks/urls.py", line 26, in check_resolver
return check_method()
File "/home/usr1/dev/lib/python3.4/site-packages/django/urls/resolvers.py", line 254, in check
for pattern in self.url_patterns:
File "/home/usr1/dev/lib/python3.4/site-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/usr1/dev/lib/python3.4/site-packages/django/urls/resolvers.py", line 405, in url_patterns
patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
File "/home/usr1/dev/lib/python3.4/site-packages/django/utils/functional.py", line 35, in __get__
res = instance.__dict__[self.name] = self.func(instance)
File "/home/usr1/dev/lib/python3.4/site-packages/django/urls/resolvers.py", line 398, in urlconf_module
return import_module(self.urlconf_name)
File "/home/usr1/dev/lib64/python3.4/importlib/__init__.py", line 109, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 2254, in _gcd_import
File "<frozen importlib._bootstrap>", line 2237, in _find_and_load
File "<frozen importlib._bootstrap>", line 2226, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 1200, in _load_unlocked
File "<frozen importlib._bootstrap>", line 1129, in _exec
File "<frozen importlib._bootstrap>", line 1471, in exec_module
File "<frozen importlib._bootstrap>", line 321, in _call_with_frames_removed
File "/home/usr1/dev/devp1/devp1/urls.py", line 22, in <module>
url(r'', app1.views.home),
NameError: name 'app1' is not defined
Upvotes: 0
Views: 1456
Reputation: 696
It looks like the quotation marks aren't in your views. The traceback shows
url(r'', app1.views.home),
but your urls.py file shows
url(r'','app1.views.home'),
Without those quotes it won't find the view in your application. I also don't think your regex will work the way you want it to. I would try this instead:
from app1 import views as app1_views
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^$', app1_views.home, name='home'),
]
Upvotes: 2