标签href不是我期待的网址

时间:2017-08-14 02:58:12

标签: django

我有一个项目(pyProject),其中有一个APP(app02)。

pyProject/urls.py中,我发送了app02:

from app02 import views as app02_v

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    ...
    url(r'^app02/', include("app02.urls")),
]

app02/urls.py

import views

urlpatterns = [
    url(r'^index/$', views.Index.as_view()),
    ...
    url(r'^userinfo/', views.userinfo),
]

app02/views.py

def userinfo(request):

    # QuerySet
    user_list = models.UserInfo.objects.all()
    print (user_list.query)
    return render(request, 'app02/userinfo.html', {'user_list':user_list})

在模板中: templates/index.html

<div style="position:absolute; top:48px; bottom:0; left:0; width:200px;background-color:#333">
    <a class="menu" href="app02/userinfo/">用户管理</a>
    <a class="menu" href="app02/ugroup/">用户组管理</a>
</div>

但是当我点击<a class="menu" href="app02/userinfo/">用户管理</a>标记时,请输出错误:

  

未找到:/ index / app02 / userinfo /

为什么不是/app02/userinfo/?为什么还有/index个? 我的专家请求/app02/userinfo/

enter image description here

2 个答案:

答案 0 :(得分:0)

在a tag href中你应该使用绝对路径:

<a class="menu" href="/app02/userinfo/">用户管理</a>

如果使用相对路径,它会追加到您当前的网址。

答案 1 :(得分:0)

name添加url关键字参数,如下所示:

urlpatterns = [
    url(r'^index/$', views.Index.as_view()), name='index',
    ...
    url(r'^userinfo/', views.userinfo), name='user_info',
]

然后使用Django url模板标记自动呈现您的网址:

<div style="position:absolute; top:48px; bottom:0; left:0; width:200px;background-color:#333">
    <a class="menu" href="{% url 'user_info' %}">用户管理</a>
    <a class="menu" href="app02/ugroup/">用户组管理</a>
</div>

语法为{% url '<view_name>' %},其中view_namename中定义的url