2017-10-08 56 views
0

Django嘗試錯誤的url模式,但我找不到我的錯誤。爲什麼Django嘗試錯誤的url模式?

urls.py

 url(r'^message/(?P<advertisementid>(\d+))/$', chat_view, name="chat_view_with_toid"), 
    url(r'^profile/(?P<userid>(\d+))/$', profile_view, name="profile"), 
    url(r'^details/(?P<advertisementid>(\d+))/$', details_view, name='details'), 

views.py

def details_view(request, advertisementid): 
    advertisement_data = Advertisement.objects.get(id=advertisementid) 
    return render(request, "details.html", {"advertisement_data": advertisement_data}) 

def profile_view(request, userid): 
    advertisements = Advertisement.objects.filter(user__id=userid) 
    return render(request, "profile.html", { 'advertisements': advertisements }) 

details.html(從那裏我想解析爲用戶配置文件)

<a href="{% url 'profile' userid=advertisement_data.user.id %}" style="text-decoration:none;"> 
<input type="submit" class="details-btn-profile" value="Profile"></a> 

    <a href="{% url 'chat_view_with_toid' advertisementid=advertisement_data.id %}" 
    style="text-decoration:none"> 
    <input type="submit" class="details-btn-contact" value="Kontakt"></a> 

main.html中

<a href="{% url 'details' advertisementid=advertisement.id %}"> 
<img src="{% static advertisement.image.url %}" alt="Image"/></a> 

當我在按鈕class="details-btn-profile"點擊Django的給了我這個錯誤:

Reverse for 'details' with no arguments not found. 1 pattern(s) tried: ['details/(?P(\d+))/$']

爲什麼它解決細節?有任何想法嗎 ?

+0

圍繞給定的HTML代碼有沒有一種形式? –

+0

不,但 Coder949

+0

表單將控制任何提交按鈕的行爲。如果沒有任何形式,我不確定會發生什麼。可能會有一個默認的默認導致GET到相同的URL和給定的錯誤。 –

回答

0

對不起浪費你的時間,我發現我的錯誤。在profile.html我有這個HTML的代碼:

<a href="{% url 'details' %}" class="announce-hedline"><h3>BMW 320i Limousine</h3></a> 

所以"{% url 'details' %}"不能缺少,因爲它需要解決的advertisementid的解決。

我在錯誤的地方搜索了錯誤。

謝謝大家的幫助!

0

url名稱chat_view_with_toid似乎不存在於您的urls.py中。

+0

哦對不起忘了添加它..我編輯我的問題 – Coder949

+0

是的......雖然實際的錯誤消息表明有其他事情正在進行......看起來不像OP提供了它... –

+1

@AaronVisang所以哪裏你使用'{%url'細節'...%}' - 我們只能在你的模板中看到'{%url'chat_view_with_toid'...%}'... –

1

當你點擊發送形式的按鈕,其操作錯誤可能是空的ATTR action類似的東西:

<form action=""> 

時候才需要設定:

<form action="{% url 'profile' userid=advertisement_data.user.id %}"> 
      <!-- ^^^^^^^^^^^^^--> 

,或者如果你想要去的鏈接通過點擊只是改變type

<input type="button" class="details-btn-profile" value="Profile"> 
    <!-- ^^^^^^^^^^--> 
+0

你是對的,但我真的需要一個表單?我在另一個地方做了 Coder949

+0

你是對的使用按鈕比提交更好,謝謝 – Coder949

相關問題