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

时间:2019-08-17 18:01:03

标签: django django-templates django-views django-urls

在我的博客网站中,我想通过单击其中一个链接来打开另一个用户的个人资料。但是它继续显示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错误。

2 个答案:

答案 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行的用户名被视为字符串而不是变量。