Pregunta

Estoy siguiendo el tutorial en el sitio web de Django, pero estoy tratando de ampliar sobre ella. Me gusta el esquema de organización de poner todas sus aplicaciones en una carpeta "Aplicaciones". Estoy tratando de averiguar la forma correcta de incluir urls.py con el fin de conseguir todo lo que enlace juntos.

Aquí está mi urls.py raíz:

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

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

Aquí está mi urls.py en aplicaciones / encuestas / urls.py:

from django.conf.urls.defaults import *

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

¿Cuál es la forma correcta de hacer esto? Gracias!

¿Fue útil?

Solución

La forma en que actualmente se ha establecido ... las direcciones URL de encuestas sería:

http://your.url.here/polls/polls/235/results/

Esto probablemente no es lo que quiere. La función include en el urlpatterns en el archivo raíz urls.py especifica "polls/" como prefijo a todos urlpatterns en la aplicación de las encuestas. Por lo tanto, en el archivo de encuestas / urls.py, no se debe especificar el prefijo "polls/" nuevo, ya que hará que los prefijos duplicadas.

Otros consejos

¿Cómo estás ejecutando las instancias de Django? Si ha configurado múltiples dominios virtuales en Apache entonces cada instancia de Django en / aplicaciones tiene su propio urls.py.

Yo tengo que trabajar al hacer esto:

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

Creo que la parte urnas es atendido en la raíz URLconf

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top