2012-11-28 50 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