2012-11-28 51 views
0

我得到一个名称错误,而试图运行我的项目,名称错误的Django

urls.py

import os 
from django.conf.urls.defaults import patterns, include, url 
#from bookmarks.views import * 
from django.views.generic.simple import direct_to_template 
from preview.views import * 
# Uncomment the next two lines to enable the admin: 
# from django.contrib import admin 
# admin.autodiscover() 

urlpatterns = patterns('', 

    (r'^catalog/$', home), 
) 

views.py

# Create your views here. 
from django.shortcuts import render_to_response 

def home(request): 
    return render_to_response("index.html") 

的index.html

{% extends base.html %} 
{% block content %} 
    <h2>Welcome!</h2> 
{% endblock %} 

settings.py

TEMPLATE_DIRS = (
    "C:/python27/Djangoprojects/ecomstore/preview", 
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates". 
    # Always use forward slashes, even on Windows. 
    # Don't forget to use absolute paths, not relative paths. 
) 

错误

NameError at /catalog/ 
name 'home' is not defined 
Request Method: GET 
Request URL: http://127.0.0.1:8000/catalog/ 
Django Version: 1.3.1 
Exception Type: NameError 
Exception Value:  
name 'home' is not defined 
Exception Location: C:\Python27\Djangoprojects\ecomstore\..\ecomstore\urls.py in <module>, line 12 
Python Executable: C:\Python27\python.exe 
Python Version: 2.7.2 
+0

追溯也许?我不相信它发生在追溯之前。 – jdi

+0

我已经加了 – user1050619

回答

1

在你preview/views.py文件home进口吗?不知怎的,你from preview.views import *并未导入。

在这种情况下,你可以尝试做

urlpatterns = patterns('preview.views', 

    (r'^catalog/$', 'home'), 
) 

呢?

然后仔细检查preview应用程序是否包含在您的settings.py文件的INSTALLED_APPS元组中。

+0

预览应用程序以及 – user1050619

+0

你可以尝试直接引用'preview.views.home'使用上述语法呢? –

+0

(r'^ catalog/$','preview.views.home'), - 这一个工作..谢谢 – user1050619

0

这是一个非常简单的错误。 '家'没有定义。

你还没有导入它。

想想,当你打开

> foobar 
> # NameError 

蟒蛇终端和类型会发生什么情况无论是在你的urls.py或使用字符串符号'myapp.views.myfunc'

+0

我认为你的意思是'home'。 –

+0

迈克尔,确实是 –

+0

from preview.views import * -its已经导入它。 – user1050619