的最新突破得來見底部: 我運行Django的SVN 15632django url反向不起作用的命名網址(重新編輯)找到原因,但現在卡住了!
Tried viewHallo in module core.views. Error was: 'module' object has no attribute 'viewHallo'
是我想reverse('home')
或reverse('admin:index')
後得到的錯誤。
這是我的項目urls.py:
from django.conf.urls.defaults import patterns, include, url
from django.contrib.staticfiles.views import serve as serveStatic
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^dbrowse/', include('dbrowse.urls')),
(r'^static/', serveStatic),
url (r'^$', 'core.views.viewHallo',name='home'),
)
這是核心\ views.py
from django.shortcuts import render_to_response
from django.template.context import RequestContext
import site
def viewHallo (request):
pass
return render_to_response ('core.html',
{'site':site,
'title':'i am the hallo view',
'content':'Hallo World!',},
context_instance=RequestContext(request))
使用shell甚至腳本reverse('home')
和reverse('admin:index')
只是不工作。
然而,在我的模板{% url home %}
和{%URL管理:索引%}工作得很好......
core
我有一個名爲site.py
我使用這個文件來存儲有關該網站的東西文件,所以我不必依賴數據庫。長話短說它包含reverse('home')
。現在這一點很重要,因爲不管reverse()
在哪裏執行腳本或外殼或模板,堆棧跟蹤始終包含從site.py
開始的行。
爲什麼地球上是django exceling的site.py
?即使它爲什麼會在reverse('home')
上跌宕起伏? Interstingly,如果我從site.py
註釋掉該行,則reverse()
開始正常工作。
怎麼回事?這裏是core\site.py
from django.contrib.sites.models import Site
from django.conf import settings
from django.core.urlresolvers import reverse
site = Site.objects.get(pk=settings.SITE_ID)
NAME = site.name
SLOGAN = 'it\'s a deal!'
COPY_HOLDER = 'My Name'
#(link_title, 'link_address', ['permission'])
MAIN_MENU = [['home', reverse('home'), 'core.view_tender'],
['admin', reverse('admin:index'), 'is_staff']]
編輯:我已經分離的Django的源代碼的投擲錯誤的行: 線91 django/core/urlresolvers.py
91: lookup_view = getattr(import_module(mod_name), func_name)
它觸發的Django importlib
這反過來進口site.py
。
我知道你不能用包含名稱命名url,好點!但奇怪的是,它停止了所有其他的「reverse()」方法的解析。但是,謝謝,我回來了! – 2011-02-22 19:42:32