在我的博客网站中,我想通过单击其中一个链接来打开另一个用户的个人资料。但是它继续显示404错误,提示“没有用户匹配给定的查询。”
这里是base.html
<a href="{% url 'blogapp:userprofile' username=view.kwargs.username %}">{{ view.kwargs.username }}</a>
这是我的urls.py
模式的功能-
path('userprofile/<str:username>/',views.userprofile,name='userprofile'),
这是我的功能views.py
@login_required
def userprofile(request,username):
user = get_object_or_404(User,username='username')
return render(request,'blogapp/userprofile.html',{'user':user})
这是我的模板文件
{% extends 'blogapp/base.html' %}
{% block content %}
<div class="row">
<img src="{{ user.profile.image.url }}">
<div class="details">
<h2>{{ user.username }}</h2>
<p>{{ user.email }}</p>
</div>
</div>
<p style="margin-top: 10px; margin-left: 138px;">{{ user.profile.description }}</p>
<hr>
{% endblock %}
{{ view.kwargs.username }}
提供了我要搜索的完美用户名。但是问题出在用户配置文件视图中。它到达了理想的路线http://127.0.0.1:8000/userprofile/username/
,但仍然显示404错误。
答案 0 :(得分:1)
在您的视图中,您将username
作为字符串传递,而它应该是在userprofile
函数内部传递的变量。
@login_required
def userprofile(request,username):
user = get_object_or_404(User,username=username)
return render(request,'blogapp/userprofile.html',{'user':user})
答案 1 :(得分:0)
@login_required
def userprofile(request,username):
user = get_object_or_404(User,username='username')
return render(request,'blogapp/userprofile.html',{'user':user})
应该是这个
@login_required
def userprofile(request,username):
user = get_object_or_404(User,username=username)
return render(request,'blogapp/userprofile.html',{'user':user})
第2行的用户名被视为字符串而不是变量。