如何在没有支持的情况下保存用户的输入

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)

【讨论】:

以上是关于如何在没有支持的情况下保存用户的输入的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有参数的情况下快速将类保存到用户默认值

如何在没有 GUI 通知的情况下保存 excel 文件?

如何在没有按钮操作的情况下使用 userdefualts 保存文本字段(swift3)

如何在没有Python类型转换的情况下保存Hex的文本字符串,即就像纯文本一样

如何在没有 Redux 的情况下将状态保存在本地存储 React 中?

如何在不更改输入内容的情况下更改输入值