python - 在 Django 中,没有其他函数被调用,除了一个显示错误 403 的其余函数
问题描述
这是我们的 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_challenge_request 的地方
<a
class="btn btn-primary mr-2"
href="{% url 'challengeide:send_challenge_request' %}"
>Submit</a
>
未调用函数 send_challenge_request 并显示错误 403 Access to localhost was denied ,这是我们用来调用 views.py 中存在的函数的锚标记。
解决方案
推荐阅读
- arrays - 从不同的类中提取随机索引数组
- mongodb - Strapi 管理页面未以本地时间格式显示
- string - 如何将数据类型的设备令牌从 Amazon SNS 转换为可以放入设置中以在 SNS 中创建终端节点的表单?
- regex - 如何为 NS 或 NA 构建正则
- amazon-web-services - 整合注释属性是来自 AWS SageMaker Ground Truth 的空错误
- python - getrandbits 不返回确切的长度
- oracle - 如何从Oracle中的日期中提取年份?
- javascript - Vue.js:后端实现
- javascript - JavaScript 过滤器返回 null
- angularjs - 如何使用 angularJS 修改特定对象中的数据