Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to use the href attribute in django templates

When I try to use a link in my Django template from /appname/index/ to get to /appname/detail/### I am instead getting to /appname/index/detail/### which is not what I'm trying to get so my app can't find it in the urlconf of course.

First the urls.py line for the detail page

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

Additionally, the root urlconf

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

Next the template code trying to get there

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

I'm not sure what else might be applicable information, just ask if you would like to see something else. I also tried :

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

But that didn't work either. Thank you in advance for any help.

like image 536
avorum Avatar asked Jun 19 '13 20:06

avorum


People also ask

How do you hyperlink in Django?

Just use the same label {% url 'index' %} . You may use each name in urls.py to link to the url. Show activity on this post. Create a new URL in the same format and give that name instead of index.

What does {{ this }} mean in Django?

What does {{ name }} this mean in Django Templates? Django. It will be displayed as name in HTML. The name will be replaced with values of Python variable. {{ name }} will be the output.

How do I link views and URLs in Django?

A request in Django first comes to urls.py and then goes to the matching function in views.py. Python functions in views.py take the web request from urls.py and give the web response to templates. It may go to the data access layer in models.py as per the queryset. Template is the presentation layer.


3 Answers

Add / at start in href:

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

And for the url tag to work you need to do it like this:

<a href="{% url 'appname.views.detail' jobID=job.id %}">{{ job.name }}</a>
like image 166
Aamir Rind Avatar answered Oct 05 '22 17:10

Aamir Rind


From my experience, as long as you have defined the url of the page the href tag should lead to in urls.py, include the absolute path in the format below.

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

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

You will notice that what goes inside the href tag is sort of appended to the current url. For more dynamic links, you can use some python as of DTL guidelines.

like image 34
Patrick Mutuku Avatar answered Oct 05 '22 17:10

Patrick Mutuku


Suppose u are at

myapp/detail

and u want to go at page

 myapp/anything

U shoud do this

<a href="../anything">Page</a>
like image 30
Vikram Choudhary Avatar answered Oct 05 '22 16:10

Vikram Choudhary