1π
β
I got it to work using the following 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>
View:
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)
I noticed in your JavaScript you have i.setAttribute('value', ""+score);
. Maybe thatβs supposed to be i.setAttribute('value', "+score");
or something similar?
I went with a straight function view. You have a interesting mix of TemplateView and function based view. If you wanted to use a TemplateView, you could do something like:
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())
Hope that helps!
π€CaffeineFueled
Source:stackexchange.com