2015-02-11 56 views
0

的想法是從我的數據庫把我的意見地址,該地址在我的情況是hikes.views.displayHike並把它傳遞不同的ID號碼,這樣就會出現在由產生的for循環的鏈接列表模板。如果我這樣做:製作自定義網址和Django的模板Menue

{%block content%} 
    {% for x in data %} 
     <a href="{%url hikes.views.displayHike x.hikeId:{{x.hikeId}}%}"> {{x.name}}</a> 
    {% endfor %} 
{%endblock%} 

{%block content%} 
    {% for x in data %} 
     <a href="{%url 'hikes.views.displayHike' {{x.hikeId}}%}"> {{x.name}}</a> 
    {% endfor %} 
{%endblock%} 

兩個以上的觀點很簡單:

def hikeHome(request): 
    data = Hikes.objects.all()  
    return render(request, 'hikeHome.html', {'data':data}) 

我得到一個語法錯誤:

Django Version: 1.7 
Exception Type: TemplateSyntaxError 
Exception Value:  
Could not parse the remainder: ':{{x.hikeId}}' from 'x.hikeId:{{x.hikeId}}' 

但是,如果我硬編碼像這樣的值:

{%block content%} 
    {% for x in data %} 
     <a href="{%url 'hikes.views.displayHike' 1 %}"> {{x.name}}</a> 
    {% endfor %} 
{%endblock%} 

它的偉大工程,但我不希望有一個硬編碼值......我想能夠只是把這個在for循環讓它運行並顯示所有用戶的可能聯繫。

我也試圖使URL中的觀點,把它變成一本字典,並訪問名稱爲鍵和值作爲URL像這樣:

觀點:

def hikeHome(request): 
    hikes = Hikes.objects.all()  
    data = dict() 
    for x in hikes: 
     data[x.name] = reverse(displayHike,args=[1]) 

    return render(request, 'hikeHome.html', {'data':data}) 

模板:

{%block content%} 
    {% for x, y in data.items %} 
     <a href="{%url {{y}}%}"> {{x}}</a> 
    {% endfor %} 
{%endblock%}` 

這得到錯誤信息:

Django Version: 1.7 
Exception Type: TemplateSyntaxError 
Exception Value:  
Could not parse the remainder: '{{y}}' from '{{y}}' 

回答

2

閱讀文檔 - https://docs.djangoproject.com/en/1.7/ref/templates/builtins/

{% block content %} 
    {% for x in data %} 
     <a href="{%url 'hikes.views.displayHike' x.hikeId %}"> {{x.name}}</a> 
    {% endfor %} 
{% endblock content %} 

應該做的伎倆。

+0

呀,不要忘了,包括您的網址在Django 1.5 +一個字符串,而不是使用'{{}}'的URL ARGS。 – 2015-02-11 23:17:19