Я следую учебнику Django, и вдруг, когда я пытаюсь получить доступ к http://127.0.0.1:8000/admin/, он дает мне TemplateSyntaxError.Django TemplateSyntaxError
TemplateSyntaxError в/админ/
Пойманный ViewDoesNotExist при визуализации: Пробовал результаты в модуле polls.views. Ошибка была: «модуль» объект имеет атрибута «Результаты»
Он выделяет эту строку: {% URL «Джанго-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)
опубликовать файл poll/views.py. Кажется, там, где ошибка –
Я добавил def результаты to views.py, и это сработало, но почему? Не может django просто игнорировать его? Некоторые вещи в джанго иногда просто не имеют смысла. – Lockhead
um, это имеет смысл. Когда кто-то посещает URL/polls/1234/results /, функция «results» вызывается из вашего view.py, и аргумент id передается ему. Затем эта функция отображает ваш шаблон и возвращает его пользователю. Так работает Django –