Django - Получить ViewDoesNotExist для представления, которое не запрашивается кодом - PullRequest
0 голосов
/ 26 января 2012

Я только что закончил Учебное пособие по Django (часть 4), но когда я захожу, чтобы проверить сервер после того, как все закончено, я получаю следующее:

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

, и обычно:

/ usr / lib / pymodules / python2.7 / django / core / urlresolvers.py в _get_callback,строка 170

Суть последнего урока заключается в том, чтобы избавиться от всех запросов, кроме «голоса» от views.py, и я, правда, сделал все правильно, но, видимо, нет.

Нигде в коде не запрашивается представление «Результаты», насколько я вижу, я несколько раз просматривал код и не могу найти проблему.

urls.py:

from django.conf.urls.defaults import patterns, include, url

from django.contrib import admin
admin.autodiscover()

url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

url(r'^admin/', include(admin.site.urls)),

from django.conf.urls.defaults import *
from django.views.generic import DetailView, ListView
from polls.models import Poll

urlpatterns = patterns('',
    url(r'^$',
        ListView.as_view(
            queryset=Poll.objects.order_by('-pub_date')[:5],
            context_object_name='latest_poll_list',
            template_name='polls/index.html')),
    url(r'^(?P<pk>\d+)/$',
        DetailView.as_view(
            model=Poll,
            template_name='polls/detail.html')),
    url(r'^(?P<pk>\d+)/results/$',
        DetailView.as_view(
            model=Poll,
            template_name='polls/results.html'),
        name='poll_results'),
    url(r'^(?P<poll_id>\d+)/vote/$', 'polls.views.vote'),
)

views.py:

from django.http import HttpResponseRedirect, HttpResponse
from polls.models import Choice, Poll
from django.shortcuts import render_to_response, get_object_or_404
from django.http import Http404
from django.template import RequestContext
from django.core.urlresolvers import reverse

def vote(request, poll_id):
    p = get_object_or_404(Poll, pk=poll_id)
    try:
        selected_choice = p.choice_set.get(pk=request.POST['choice'])
    except (KeyError, Choice.DoesNotExist):
        # Redisplay the poll voting form.
        return render_to_response('polls/detail.html', {
            'poll': p,
            'error_message': "You didn't select a choice.",
        }, context_instance=RequestContext(request))
    else:
        selected_choice.votes += 1
        selected_choice.save()

        return HttpResponseRedirect(reverse('poll_results', args=(p.id,)))

models.py:

from django.db import models

class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
    def __unicode__(self): 
        return (self.question)

class Choice (models.Model):
    poll = models.ForeignKey(Poll)
    choice = models.CharField(max_length=200)
    votes = models.IntegerField()
    def __unicode__(self):
        return (self.choice)

admin.py:

from polls.models import Poll
from polls.models import Choice
from django.contrib import admin

class ChoiceInline(admin.TabularInline):
    model = Choice
    extra = 3

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']
    date_hierarchy = 'pub_date'
    search_fields = ['question']


admin.site.register(Poll, PollAdmin)

Любая помощь в поиске проблемы приветствуется,:)

1 Ответ

0 голосов
/ 26 января 2012

Последняя строка ваших ссылок на urlconf polls.views.vote.Это заставит Django попытаться импортировать polls.views, и если в этом файле есть какие-либо ошибки (которые основаны на полученном вами сообщении об ошибке), произойдет сбой.Результаты "импортируется.Конечно, код, который вы разместили для вашего views.py, не имеет ничего подобного, но это полный файл или просто фрагмент?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...