我的django网站的侧边栏中有一个链接的概率,在模板中就像是这样:
<li><a href="profile">Profile</a></li>
在urls.py中:
url(r'^(?P<user_id>\d+)/profile/$', 'auth.views.show_profile', name='profile')
当我使用url从主页面访问它时:例如/1001/profile/
它加载正常,但是当我尝试使用url从另一个子页面访问它时:例如/1001/forms/profile/
我收到错误:当前URL ,/1001/forms/profile/
,与这些中的任何一个都不匹配。我该如何解决这个问题?
答案 0 :(得分:1)
这是因为“profile”是一个相对URL,并且相对URL被附加到当前URL - 结果地址在整个站点中无效。好像你应该使用绝对URL。
在模板上,您可以尝试以下内容:
<a href="/{{ request.user.id }}/profile/">Profile</a>
<强>更新强>
要获取模板中的请求,您必须将django.core.context_processors.request添加到TEMPLATE_CONTEXT_PROCESSORS。我不确定它是否默认添加。
答案 1 :(得分:0)
您必须像在/1001/profile/
url(r'^(?P<user_id>\d+)/form/profile/$', 'auth.views.show_profile', name='profile_form')
并将您的代码更正为@Paulo提到的,或者您也可以通过反向网址来执行此操作。
<a href="{% url profile request.use.id %}">Profile</a>