没有用户匹配给定的查询。找不到页面 404?

No User matches the given query. Page Not found 404?

在我的博客网站中,我想通过单击其中一个 link 打开另一个用户的个人资料。但它一直显示 404 错误,说没有用户匹配给定的查询。

这是 base.html

中的 link
<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 }} 给出了我搜索的完美用户名。但问题出在 userprofile 视图中的某个地方。它去了完美的路线 http://127.0.0.1:8000/userprofile/username/ 但它仍然显示 404 错误。

在您的视图中,您将 username 作为字符串传递,而它应该是在 userprofile 函数内部传递的变量。

@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})

应该是这个

@login_required
def userprofile(request,username):
    user = get_object_or_404(User,username=username)

    return render(request,'blogapp/userprofile.html',{'user':user})

第 2 行的用户名被视为字符串而不是变量。