如何在没有支持的情况下保存用户的输入
Posted
技术标签:
【中文标题】如何在没有支持的情况下保存用户的输入【英文标题】:how to save user's inputs without backeneds 【发布时间】:2017-04-17 06:40:06 【问题描述】:我只是在学习 Django 和一般的 Web 开发,我想知道我想做的事情是否可行。我想编写一个 Django 测验,无需后端即可保存用户输入的答案。这可能吗?如果不可能,我可以做到这一点的最简单和最简单的方法是什么。我的模板:
% extends "base.html" %
% block title %Exam Questions% endblock %
% block content %
% if all_questions %
<form action="% url 'save_answer' %" method="post">
% csrf_token %
% for question in all_questions %
<h3>question.text </h3>
<input type="hidden" name="exam_id" value=" question.exam.id ">
<input type="hidden" name="question_id" value=" question.id ">
<input type="hidden" value="question.answer_set.all" name="answers">
% for answer in question.answer_set.all %
<p><input type="radio" name="answer" value=" answer.id "> answer.text </p>
% endfor %
% endfor %
<input type="submit" value="Send">
</form>
% else %
<h2>No questions available</h2>
% endif %
% endblock %
现在我想知道如何在没有后端的情况下保存用户答案
【问题讨论】:
没有后端什么?你想做什么? 【参考方案1】:Afaik,您可以将其保存在您的后端 (django forms doc),或者使用 javascript 将其保存在 client browser cookie。
【讨论】:
【参考方案2】:首先,对您的模板进行一点更改,以使收音机选择起作用
<p><input type="radio" name="answer_ question.id " value=" answer.id "> answer.option </p>
然后,这里是存储会话答案的代码:
def post(self, request, *args, **kwargs):
post = request.POST
question_ids = post.getlist('question_id')
results = dict()
for id in question_ids:
answer = post.get('answer_%s' % id)
results[id] = answer
# Save to session or do whatever you want.
request.session['results'] = results
# Response to review
return JsonResponse(results)
【讨论】:
以上是关于如何在没有支持的情况下保存用户的输入的主要内容,如果未能解决你的问题,请参考以下文章
如何在没有按钮操作的情况下使用 userdefualts 保存文本字段(swift3)
如何在没有Python类型转换的情况下保存Hex的文本字符串,即就像纯文本一样