Python 在Django中,除了显示错误403的一个函数外,没有调用其他函数
这是我们的url代码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('
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不被调用