django url 与反向匹配错误的正确 url 不匹配

如何解决django url 与反向匹配错误的正确 url 不匹配

我在我的 django 项目中遇到了非常不寻常的错误,因为 django 读取了错误的 url,而该 url 未在被单击的 href 标签中说明。要导航到的页面只是一个具有简单 url 模式的页面,而它导航到的页面需要两个用于反向匹配的参数,这些参数预计不会提供,这会导致错误

未找到参数为 '('','')' 的 'search-friend-detail' 反向。尝试了 1 个模式:['chat/search\-friend\-detail/(?P[^/]+)/(?P[^/]+)/$']

urls.py:

 urlpatterns = [
    path('admin/',admin.site.urls),path('',include('users.urls')),path('posts/home.html',p_views.PostsListView.as_view(),name='posts-home'),path('friends/search.html',f_views.search,name='friends-search'),path('friends/add-friend/',f_views.SearchDetail,name='friends-search-detail'),path('friends/accept-requests/',f_views.AcceptRequests,name='accept-requests'),path('friends/accept-requests-detail/',f_views.AcceptRequestsDetail,name='accept-requests-detail'),path('chat/chatt.html',pc_views.SearchChat,name='chat-search'),path('chat/search-friend-detail/<str:username>/<str:usernamee>/',pc_views.SearchChatDetail,name='search-friend-detail'),]

“聊天搜索”是我希望通过此链接在 base.html 文件中导航到的实际网址:

<a href="{% url 'chat-search' %}"><i class="fa fa-envelope"></i></a>

而是奇迹般地导航到最后一个网址,即“搜索好友搜索”。 虽然链接在我的 chatt.html 文件中:

<a class="mr-2" href="{% url 'search-friend-detail' results.Accepter.username results.Added.username %}">{{ results.Added.username }}</a>

编辑:为了清楚起见,完整的 chatt.html 文件

                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            b{% extends "posts/base.html" %}
{% load crispy_forms_tags %}
{% block content %} 
<div class="container">
<div class="row">
<div class="col-sm-9 col-md-7 col-lg-5 mx-auto">
<form method="POST" class="form-signin">
            {% csrf_token %}
            <div class="form-label-group">
            {{ form|crispy}}
            </div>
            
            <button class="btn btn-lg btn-primary btn-block text-uppercase" type="submit">Search</button> 
            </form>
            </div>
            {% if results.Accepter == request.user %}
            <article class="media content-section">
            <img class="rounded-circle article-img" src="{{ results.Added.profile.image.url }}">
            <a class="mr-2" href="{% url 'search-friend-detail' results.Accepter.username results.Added.username %}">{{ results.Added.username }}</a>
            <div class="media-body">
            <div class="article-Metadata">
            {% else %}
            <article class="media content-section">
            <img class="rounded-circle article-img" src="{{ results.Accepter.profile.image.url }}">
            <a class="mr-2" href="{% url 'search-friend-detail' results.Accepter.username results.Added.username %}">{{ results.Accepter.username }}</a>
            <div class="media-body">
            <div class="article-Metadata">
            {% endif %}
              </div>
              </div>
            </div>
            </div>
            </div>
            </div>
{% endblock content %}

我的views.py:

def SearchChat(request):
    result=None
    if request.method == 'POST':
        form= ChatFriend(request.POST)
        
        if form.is_valid():
            name = form.cleaned_data.get('chatsearch')
            userr = User.objects.get(username=name)
            if FriendList.objects.filter(Accepter=request.user,Added=userr).exists():
                result = FriendList.objects.get(Accepter=request.user,Added=userr)
            else:
                result = FriendList.objects.get(Accepter=userr,Added=request.user)
    else:
        form= ChatFriend()
    context={
           'results': result,'form':form,}
    return render(request,'chat/chatt.html',context)

def SearchChatDetail(request,username,usernamee):
    Acceptor= User.objects.get(username=username)
    Addid= User.objects.get(username=username)
    friend= FriendList.objects.get(Accepter=Acceptor,Added=Addid)
    msgs= Chat.objects.filter(messengers=friend)
    if request.method == 'POST':
        form= message(request.POST,instance=request.user)
        if form.is_valid():
            form.save()
            redirect('search-friend-detail',friend.Accepter.username,friend.Added.username)
    else:
        form= message(instance=request.user)
            
    context={
        'friend':friend,'msgs':msgs,'chat/search-friend-detail.html',context)

编辑:我忘了提到我第一次运行它的代码时,只是睡了几个小时回到下一个任务然后开始生成错误而根本没有接触代码

解决方法

在正确阅读常青树的回复后解决了这个问题,糟糕的是我正在将这个视图与我写的另一个有效工作的视图进行比较,但只记得我使用 ajax 请求来执行视图代码而不是加载一个新模板在这个问题中已经完成,我所做的只是添加一个条件语句,以在 searchh 表单为空时仅显示搜索表单。 回答这个是因为我知道还有其他人以后会遇到这个问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?