从Django中的Javascript Form访问GET Form数据
Accessing GET Form data from - Javascript Form in Django
在从Javascript表单获取数据方面,Django遇到了问题。以下是我的Javascript代码。。。
function save() {
var form = document.createElement("form");
console.log(form);
form.setAttribute('method', 'get');
form.setAttribute('action', '/quiz_score/');
document.body.appendChild(form);
var i = document.createElement("input");
i.setAttribute('name', 'Score');
i.setAttribute('value', ""+score);
form.appendChild(i);
var i = document.createElement("input");
i.setAttribute('name', 'csrfmiddlewaretoken');
i.setAttribute('value', '{{ csrf_token }}');
form.appendChild(i);
form.submit();
}
我知道使用GET并不理想,但我无法使POST正常工作,它根本无法重定向到目标页面。
这是我的Django类和函数。。。
class QuizScoreView(TemplateView):
template_name = "quiz_score.html"
def quiz_score(self, request):
# Quiz.objects.create(username= ,score= )
print("Score: "+request.body)
我只是想得到分数变量,这样我就可以在python中使用它了。
如果你需要更多的细节,请发表评论,我会把它们添加到下面的问题中。
我使用了以下HTML/JavaScript:
<html><body>
<button onclick="save();">click me</button>
<script>
function save() {
var form = document.createElement("form");
console.log(form);
form.setAttribute('method', 'get');
form.setAttribute('action', '/quiz_score/');
document.body.appendChild(form);
var i = document.createElement("input");
i.setAttribute('name', 'Score');
i.setAttribute('value', "+score");
form.appendChild(i);
var i = document.createElement("input");
i.setAttribute('name', 'csrfmiddlewaretoken');
i.setAttribute('value', '{{ csrf_token }}');
form.appendChild(i);
form.submit();
}
</script>
</body></html>
视图:
from django.shortcuts import render
def quiz_score(request):
context = {'score': request.GET['Score']}
return render(request, 'quiz_score.html', context=context)
urls.py:
url(r'^quiz_score/$', quiz_score)
我注意到您的JavaScript中有i.setAttribute('value', ""+score);
。也许这应该是i.setAttribute('value', "+score");
或类似的东西?
我选择了直接的函数视图。您有一个有趣的TemplateView和基于函数的视图的组合。如果你想使用TemplateView,你可以做一些类似的事情:
from django.views.generic import TemplateView
class QuizScoreView(TemplateView):
template_name = 'quiz_score.html'
def get(self, request, *args, **kwargs):
context = self.get_context_data(**kwargs)
context['Score'] = request.GET['Score']
return self.render_to_response(context)
urls.py:
url(r'^quiz_score/$', QuizScoreView.as_view())
希望能有所帮助!
相关文章:
- 访问布局信息是否也会导致浏览器重排
- Javascript,访问一个主要对象模块模式中的每个对象
- 如何访问声音管理器2创建的声音对象
- 在Twitter上用ie9中的空白src访问iframe的contentWindow
- JavaScript Pub/Sub属性访问问题
- 从JavaScript访问struts操作中的属性
- 是否可以从父类访问子类的属性
- 如何访问fastOpt.js
- 访问JSON对象内部的数组元素
- 从模块内部访问Express装载路径
- 难以访问的JS环境中的语法错误
- 如何从对象的原型方法访问JavaScript对象属性
- 访问json数组中的对象
- 通过javascript/html访问twitter共享iframe
- Dojo:访问dijit.form.Select中单击的项目
- 为什么在这个网站上不能通过JS访问元素
- 从Django中的Javascript Form访问GET Form数据
- 从FORM访问HTML元素的JavaScript函数的单元测试用例
- 通过javascript访问另一个服务器的Form Action
- 如何从form.submit()访问键/值数据