为什么Django尝试错误的url模式?

时间:2017-10-08 10:16:27

标签: python django url html-form

Django尝试错误的网址模式,但我找不到我的错误。

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给了我这个错误:

  

反转&#39;详细信息&#39;没有找到参数。尝试了1种模式:[&#39;详细信息/(?P(\ d +))/ $&#39;]

为什么要解析细节?有什么想法吗?

3 个答案:

答案 0 :(得分:1)

当您点击发送表单的按钮时,操作错误可能是空的attr action类似的内容:

<form action="">

你需要设置它:

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

或者如果您想通过点击只需更改type

进行链接
 <input type="button" class="details-btn-profile" value="Profile">
    <!-- ^^^^^^^^^^-->

答案 1 :(得分:0)

网址名称chat_view_with_toid似乎不存在于您的urls.py中。

答案 2 :(得分:0)

抱歉浪费你的时间,我发现了自己的错误。在profile.html上,我有这个HTML代码:

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

因为缺少需要解决的广告,所以"{% url 'details' %}"无法解决。

我在错误的地方搜寻错误。

谢谢大家的帮助!