Domanda

Sto seguendo il tutorial sul sito web Django, ma sto cercando di espandere su di essa. Mi piace lo schema organizzativo di mettere tutte le applicazioni in una cartella "Applicazioni". Sto cercando di capire il modo corretto per includere urls.py al fine di ottenere tutto per collegare tra loro.

Ecco il mio urls.py radice:

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

Ecco il mio urls.py alle apps / sondaggi / 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'),
)

Qual è il modo corretto di fare questo? Grazie!

È stato utile?

Soluzione

Il modo in cui attualmente averlo creato ... gli URL per sondaggi potrebbe essere:

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

Questo è probabilmente non quello che volete. La funzione include nel urlpatterns nei specifica root file urls.py "polls/" come prefisso a tutti urlpatterns in app sondaggi. Pertanto, nel file sondaggi / urls.py, non si deve specificare nuovamente il prefisso "polls/" in quanto causerà prefissi duplicati.

Altri suggerimenti

Come sono in esecuzione le istanze di Django? Se avete più vhosts configurato in Apache allora ogni istanza Django in / apps ha il proprio urls.py.

ho preso a lavorare in questo modo:

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

Credo che la parte urne è curato nella root urlconf

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top