Django TemplateSyntaxError

Я следую учебнику Django, и вдруг, когда я пытаюсь получить доступ к http://127.0.0.1:8000/admin/, он дает мне TemplateSyntaxError.

TemplateSyntaxError at / admin /

Caught ViewDoesNotExist при рендеринге: Пробные результаты в модуле polls.views. Ошибка: объект 'module' не имеет атрибутов 'results'

Он выделяет эту строку: {% url 'django-admindocs-docroot' как docsroot%}

Страница администратора работала как шарм, пока я не добрался до части 3 урока и не испортил URL-адреса, хотя я сделал это точно так, как они сказали, поэтому я сомневаюсь, что это проблема.

urls.py:

from django.conf.urls.defaults import * from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', (r'^polls/$', 'polls.views.index'), (r'^polls/(?P<poll_id>\d+)/$', 'polls.views.detail'), (r'^polls/(?P<poll_id>\d+)/results/$', 'polls.views.results'), (r'^polls/(?P<poll_id>\d+)/vote/$', 'polls.views.vote'), (r'^admin/', include(admin.site.urls)), ) 

admin.py:

 from polls.models import Poll from polls.models import Choice from django.contrib import admin class ChoiceInline(admin.TabularInline): model = Choice extra = 0 class PollAdmin(admin.ModelAdmin): fieldsets = [ (None, {'fields': ['question']}), ('Date information', {'fields': ['pub_date'], 'classes': ['collapse']}), ] inlines = [ChoiceInline] list_display = ('question', 'pub_date') list_filter = ['pub_date'] search_fields = ['question'] date_hierarchy = 'pub_date' admin.site.register(Poll, PollAdmin) 

views.py:

 from django.http import HttpResponse from polls.models import Poll from django.template import Context, loader def index(request): latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5] t = loader.get_template('polls/index.html') c = Context({ 'latest_poll_list': latest_poll_list, }) return HttpResponse(t.render(c)) def detail(request, poll_id): return HttpResponse("You're looking at poll %s. " % poll_id) def vote(request, poll_id): return HttpResponse("You're voting on poll %s." % poll_id) 

One Solution collect form web for “Django TemplateSyntaxError”

 Caught ViewDoesNotExist while rendering: Tried results in module polls.views. Error was: 'module' object has no attribute 'results' 

Это почти все, что вам нужно. Игнорируйте TemplateSyntaxError , он вообще не связан с шаблоном. Джанго говорит вам, что у вас этого нет:

 def results(request): # do something 

На вашем view.py. Вы получите ошибки ViewDoesNotExist за пределами администратора, когда начнете писать URL-адреса и ссылаетесь на функции, которые на самом деле не существуют в них, поэтому убедитесь, что по мере того, как вы продвигаетесь, вы либо гарантируете, что у вас есть такие функции-заглушки, которые возвращают только базовый 200, или вы прокомментируйте эти URL-адреса, пока они вам не понадобятся.

С технической точки зрения это расширение ошибки python. Если вы запустили:

 $ python manage.py shell >>> from poll import views x = views.results 

Вы получите AttributeError .

Поскольку вы спросили, почему, если вы посмотрите в Django/core/urlresolvers.py вы увидите строку:

 _callable_cache = {} # Maps view and url pattern names to their view functions. 

Таким образом, в основном кеш отображения (URL-адреса или любые другие) для функций выполняются в виде хэш-карты (словаря). Это построено с помощью этой функции:

 def _get_callback(self): if self._callback is not None: return self._callback try: self._callback = get_callable(self._callback_str) except ImportError, e: mod_name, _ = get_mod_func(self._callback_str) raise ViewDoesNotExist("Could not import %s. Error was: %s" % ( mod_name, str(e))) except AttributeError, e: mod_name, func_name = get_mod_func(self._callback_str) raise ViewDoesNotExist("Tried %s in module %s. Error was: %s" % ( func_name, mod_name, str(e))) return self._callback callback = property(_get_callback) 

Кто оценивает каждый обратный вызов, чтобы проверить его существование (новые строки являются моими).

  • django 1.5 + ошибка pymysql: ImportError: не может импортировать имя Thing2Literal
  • Используя PyCharm Professional и Vagrant, как мне запустить сервер Django?
  • Должен ли я редактировать файл миграции django для редактирования несоответствующих зависимостей
  • Django - Работа с несколькими формами
  • django не возвращает соответствующий ответ
  • Django / Python: обновить отношение к точке на settings.AUTH_USER_MODEL
  • как переопределить подробное имя поля модели суперкласса в django
  • Использование только части DB Django
  • Python - лучший язык программирования в мире.