Pergunta

Eu estou seguindo o tutorial Django e ficou preso com um erro na parte 4 do tutorial. I chegou à parte onde eu estou escrevendo o voto vista, que usa reverter para redirecionar para outra vista. Por alguma razão, não inversa com a seguinte exceção:

import () Argumento 1 deve ser uma string, não instancemethod

Atualmente olhares urls.py do meu projeto como este:

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)),
)

eo urls.py aplicativo é:

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'),
)

E a vista voto é: (eu simplificado para ter apenas a linha com o erro)

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

Quando eu remover o administrador urls incluem desde urls.py do projeto, ou seja, tornando-se em:

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

ele funciona.

Eu tentei tantas coisas e não pode entender o que estou fazendo de errado.

Foi útil?

Solução

A maneira como você incluir as URLs de administração mudou algumas vezes ao longo do último par de versões. É provável que você está usando as instruções erradas para a versão do Django instalado.

Se você estiver usando o tronco atual - ou seja, não um lançamento oficial -, então a documentação em http: //docs.djangoproject.com/en/dev/ está correto.

No entanto, se você estiver usando 1.0.2, então você deve seguir o link no topo da página para http://docs.djangoproject.com/en/1.0/ .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top