См внизу для последних прорывов:
Я использую django SVN 15632
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'),
)
это core \ 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))
с использованием оболочки или даже скрипта reverse('home')
и reverse('admin:index')
просто не работает.
Однако в моих шаблонах {% url home %}
и {% url admin: index%} работают нормально ...
в моем приложении core
У меня есть файл с именем site.py
Я использую этот файл для хранения информации о сайте, поэтому мне не нужно полагаться на базу данных. Короче говоря, он содержит reverse('home')
. Теперь это важно только потому, что независимо от того, где reverse()
является сценарием, оболочкой или шаблоном, трассировка стека всегда содержит строку из site.py
.
с какой стати джанго превышает site.py
? и даже если это так, почему он спотыкается о reverse('home')
?. Интересно, что если я закомментирую строку из 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']]
EDIT: я выделил строку в исходном коде django, которая выдает ошибку:
строка 91 в django/core/urlresolvers.py
91: lookup_view = getattr(import_module(mod_name), func_name)
он запускает django importlib
, который в свою очередь импортирует site.py
.