web-dev-qa-db-fra.com

comment utiliser l'attribut href dans les modèles Django

Lorsque j'essaie d'utiliser un lien dans mon modèle Django à partir de /appname/index/ pour accéder à /appname/detail/###, je parviens plutôt à /appname/index/detail/###, ce qui n'est pas ce que j'essaie d'obtenir afin que mon application ne puisse pas le trouver dans l'urlconf bien sûr. 

D'abord la ligne urls.py pour la page de détail

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

De plus, la racine urlconf

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

Suivant le modèle de code essayant d'y arriver

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

Je ne sais pas quoi d'autre pourrait être une information applicable, demandez simplement si vous souhaitez voir autre chose. J'ai aussi essayé:

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

Mais cela n'a pas fonctionné non plus. Merci d'avance pour toute aide.

11
avorum

Ajoutez / au début dans href:

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

Et pour que la balise url fonctionne, procédez comme suit:

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

D'après mon expérience, tant que vous avez défini l'URL de la page à laquelle la balise href doit conduire dans urls.py, incluez le chemin absolu dans le format ci-dessous.

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

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

Vous remarquerez que ce qui se trouve à l'intérieur de la balise href est en quelque sorte ajouté à l'URL actuelle. Pour des liens plus dynamiques, vous pouvez utiliser des instructions python ou DTL.

0
Patrick Mutuku

Bien, cela fonctionne parfaitement, j'ai ajouté <h2><a href="/index.html">Click here to go to Index page</a></h2> au lieu de <h2><a href="index.html">Click here to go to Index page</a></h2>

0
Arunkumar Arjunan