我试图通过Django中的url传递一个参数,但似乎没有任何效果。
这是我的views.py:
from django.shortcuts import render
def show_user_profile(request, user_id):
assert isinstance(request, HttpRequest)
return render(request, "app/show_user_profile.html", {'user_id': user_id})
这是我目前的网站urls.py:
urlpatterns = [
path('', views.home, name='home'),
path('profile/', views.profile, name='profile'),
path(r'^show_user_profile/(?P<user_id>\w+)/$', views.show_user_profile, name="show_user_profile"),
path('admin/', admin.site.urls),
]
我试过了
http://localhost:50572/show_user_profile/aaa
http://localhost:50572/show_user_profile/aaa/
http://localhost:50572/show_user_profile/aaa//
http://localhost:50572/show_user_profile/?user_id=aaa
但我总是得到相同的屏幕说它找不到网址模式。
但我试过了都失败了。
这个也不一样
path('show_user_profile/<int:user_id>/$', views.show_user_profile, name='show_user_profile')
顺便说一句,这个也不管用。
path(r'^show_user_profile/$', views.show_user_profile, name="show_user_profile"),
我看了here和here的答案,我似乎做对了每一件事,我错过了什么?
编辑:
下面是我的显示用户配置文件模板:
{% extends "app/layout.html" %}
{% block content %}
{% if request.session.uid %}
<div id="profile">
<div>
<span id="profile_prof_pic_content">
<img id="prof_pic" src="{{ user_data.prof_pic }}" width="100" height="100" />
</span>
<span>
{{ user_data.first_name }} {{ user_data.last_name }}
</span>
</div>
<div>
{{ user_data.prof_desc }}
</div>
</div>
{% else %}
<h2>You are not signed in. <a href="/login/">Log in</a> to access this user profile.</h2>
{% endif %}
{% endblock %}
{% block scripts %}
{% load static %}
<script src="{% static 'app/scripts/jquery.validate.min.js' %}"></script>
1条答案
按热度按时间tzxcd3kk1#
而不是这个:
试试这个:
并尝试在浏览器上导航
注意:我使用了re_path而不是path。您可以检查here