我有一个项目(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/
。
答案 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_name
是name
中定义的url
。