Python 在Django中,除了显示错误403的一个函数外,没有调用其他函数

Python 在Django中,除了显示错误403的一个函数外,没有调用其他函数,python,django,Python,Django,这是我们的url代码 from django.conf.urls import url,include from django.urls import path,re_path from . import views app_name = 'challengeide' urlpatterns = [ url('challengeide', views.qtn,name='test'), url('

这是我们的url代码

from django.conf.urls import url,include
    from django.urls import path,re_path
    from . import views
    
    app_name = 'challengeide'
    urlpatterns = [
            
        url('challengeide', views.qtn,name='test'),
        url('challenge/', views.challengeide, name='challengeide'),
        url('challenge/', views.dataentry, name='dataentry'),
        #url('challengeide', views.dataentry,name='dataentry'),
        url('challenge/challengeide/', views.send_challenge_request, name='send_challenge_request'),
    ]
这是视图的代码

from django.shortcuts import render
from django.http import JsonResponse, HttpResponseForbidden
import requests
from challengeide.models import Challenge_Detail
from challengeide.models import ChallengeDemo
import json
from django.utils.datastructures import MultiValueDictKeyError
from users.models import Profile
from django.shortcuts  import redirect, get_object_or_404
from django.http.response import HttpResponseRedirect
from django.contrib.auth import get_user_model
def qtn(request):
    try:
        #print("If loop")
        data = request.POST['opponent']
        data1 = request.POST['qts']
        opponent_row = Profile.objects.get(slug = data)
        global to_id
        to_id = opponent_row.user_id
        print(data,data1)
        global a
        a = int(data1)
        question_desc = Challenge_Detail.objects.get(id = a)
        #print(a)
        #dataentry(request)
        return render(request,"challengeide.html",{'ChallengeDetails':question_desc})
    except MultiValueDictKeyError :
        #print("in else")
        question_desc = Challenge_Detail.objects.get(id = a)
        e1 = question_desc.expout
        e2 = question_desc.expout2
        e3 = question_desc.expout3
        e4 = question_desc.expout4
        e5 = question_desc.expout5
        i1 = question_desc.expin
        i2 = question_desc.expin2
        i3 = question_desc.expin3
        i4 = question_desc.expin4
        i5 = question_desc.expin5
        for i in range(1,6):
            if (i==1):
                if request.is_ajax():
                    source = request.POST['source']
                    lang = request.POST['lang']
                    data = {
                        'client_secret': '' ,
                        'async': 0,
                        'source': source,
                        'lang': lang,
                        'time_limit': 5,
                        'memory_limit': 262144,

                    }

                    
                    x = str(i1)
                    i1 = x.replace("qwe","\n")
                    data['input'] = i1
                    
                    '''
                    if 'input' in request.POST:
                        data['input'] = request.POST['input']'''
                    r = requests.post(RUN_URL, data=data)
                    
                    temp =(r.json().copy())
                    print(temp)
                    print(data)
                    global out_returned
                    if(temp["run_status"]["status"]!="CE"):
                        out_returned = temp['run_status']["output"]
                        e = temp['compile_status']
                        print(e)
                        compare(out_returned,e1)
                        print(e1)
                        print(out_returned)
                    else:
                        error = (temp["compile_status"])
                        print(error)
                        ex = {"Problem" :error}
                        print(type(ex))
                        print(ex)
                        return JsonResponse(r.json(), safe=False))
                    
                else:
                    return HttpResponseForbidden()


def send_challenge_request(request):    
    print("dataintial")
    user = get_object_or_404(User, id=to_id)
    print(request.user)
    print(user)
    print("dataentry")
    entry = ChallengeDemo(
    from_id=request.user,
    to_id=user,
    score1 = 10.5,
    score2 = 12.5,
    qtn_id = 1
    )
    entry.save()
    print("dataexit")
    return render(request, 'challenge.html')
这就是我们在html中调用函数send\u challenge\u request的地方

                                    <a
                                    class="btn btn-primary mr-2"
                                    href="{% url 'challengeide:send_challenge_request' %}"
                                    >Submit</a
                                    >
提交

函数send\u challenge\u request未被调用,显示错误403拒绝访问本地主机,这是我们用来调用views.py中函数的锚标记。

如果将最后一个url(路径)放在url模式列表的第一位,会发生什么情况?未找到页面(404)请求方法:POST请求URL:引发者:challengeide.views.send_challenge_Request仅第一个URL为working rest,其他URL不被调用