how to use the href attribute in django templates

2020-02-25 08:09发布

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.

3条回答
乱世女痞
2楼-- · 2020-02-25 08:40

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>
查看更多
做个烂人
3楼-- · 2020-02-25 08:41

Nice this works perfectly, I added <h2><a href="/index.html">Click here to go to Index page</a></h2> instead of <h2><a href="index.html">Click here to go to Index page</a></h2>

查看更多
欢心
4楼-- · 2020-02-25 08:44

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.

查看更多
登录 后发表回答