2013-06-19 9 views
5

Kiedy próbuję użyć linku w moim szablonie Django z /appname/index/, aby uzyskać /appname/detail/###, zamiast tego dostaję się do /appname/index/detail/###, co nie jest tym, co próbuję uzyskać, aby moja aplikacja mogła " t oczywiście znaleźć go w urlconf.jak używać atrybutu href w szablonach django

Najpierw urls.py linia na stronie szczegółów

url(r'detail/(?P<jobID>\d+)/$', 'appname.views.detail') 

Dodatkowo, korzeń URLconf

urlpatterns = patterns('', 
    url(r'^appname/', include('appname.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
) 

Następny kod szablonu próbuje się tam dostać

{% for job in jobList %} 
    <a href="detail/{{ job.id }}/">{{ job.name }}</a> 

I” nie jestem pewien, jakie jeszcze mogą być przydatne informacje, po prostu zapytaj, czy chciałbyś zobaczyć coś jeszcze. Próbowałem również:

<a href="{% url 'appname.views.detail' %}/{{ job.id }}">{{ job.name }}</a> 

Ale to też nie działa. Z góry dziękuję za pomoc.

+0

Jak definiuje się root ulrconf? przedrostek adresu URL do '/ detail ...' – karthikr

+0

added root urlconf – avorum

+0

następnie potrzebujesz '/ appname/detail/{{job_id}} /' Check @ Aamir's second answer. To powinno zadziałało – karthikr

Odpowiedz

20

Dodaj / na początku w href:

<a href="/appname/detail/{{ job.id }}/">{{ job.name }}</a> 

A dla tagu url pracować trzeba zrobić to tak:

<a href="{% url 'appname.views.detail' jobID=job.id %}">{{ job.name }}</a> 
+0

obie te metody dają mi ten sam docelowy adres URL, co poprzednio. – avorum

+0

W jaki sposób dołączasz adresy URL 'appname' w głównym pliku urlconf? –

+0

działa ładnie! dzięki –

0

Z mojego doświadczenia, tak długo, jak zdefiniowano URL strony, do której powinien prowadzić tag href w urls.py, zawiera ścieżkę bezwzględną w poniższym formacie.

Site name: yyyy.com 
Url of page to redirect to in urls.py: yyyy.com/signup/ 

Sample link: <a href="/signup/">Signup</a> 

Zauważysz, że zawartość znacznika href jest dołączana do bieżącego adresu URL. W przypadku bardziej dynamicznych linków można użyć niektórych pythonów jako wytycznych DTL.