Django: обратная функция завершается с ошибкой за исключением - PullRequest
3 голосов
/ 15 июля 2009

Я следую учебному пособию по Django и застрял с ошибкой в ​​четвертой части учебного пособия. Я попал в ту часть, где я пишу представление голос , в котором используется реверс для перенаправления в другое представление. По какой-то причине происходит обратный сбой со следующим исключением:

import () аргумент 1 должен быть строкой, а не методом instance

В настоящее время urls.py моего проекта выглядит так:

from django.conf.urls.defaults import *
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
(r'^admin/(.*)', include(admin.site.root)),
)

и приложение urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('mysite.polls.views',
     (r'^$', 'index'),
     (r'^(?P<poll_id>\d+)/$', 'details'),
     (r'^(?P<poll_id>\d+)/results/$', 'results'),
     (r'^(?P<poll_id>\d+)/vote/$', 'vote'),
)

А вот голосование выглядит так: (я упростила его, чтобы иметь только строку с ошибкой)

def vote(request, poll_id):
    return HttpResponseRedirect(reverse('mysite.polls.views.results', args=(1,)))

Когда я удаляю админские URL-адреса из проекта urls.py, то есть превращаю их в:

urlpatterns = patterns('',
    (r'^polls/', include('mysite.polls.urls')),
#(r'^admin/(.*)', include(admin.site.root)),
)

это работает.

Я столько всего перепробовал и не могу понять, что я делаю не так.

1 Ответ

6 голосов
/ 15 июля 2009

Способ добавления URL-адресов администратора несколько раз менялся за последние несколько версий. Вероятно, вы используете неправильные инструкции для установленной версии Django.

Если вы используете текущий транк - т.е. не официальный релиз - тогда документация на http://docs.djangoproject.com/en/dev/ верна.

Однако, если вы используете 1.0.2, вы должны перейти по ссылке вверху страницы на http://docs.djangoproject.com/en/1.0/.

...