2017-04-17 13 views
-1

私は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 %} 

今、私はバックエンド

+0

*何*?あなたは何をしようとしているのですか? –

答えて

0

私の知る限りでなく、ユーザの答えを保存する方法を知っていただきたいと思い、あなたのバックエンド(django forms doc)に保存し、またはclient browser cookieにJavaScriptを使用してそれを保存することができます。

0

まず、ラジオの選択肢が続い

<p><input type="radio" name="answer_{{ question.id }}" value="{{ answer.id }}">{{ answer.option }}</p> 

を動作させるために、あなたのテンプレートとlitle変更を行う、ここでセッションへの回答を格納するためのコードは次のとおりです。バックエンドなし

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) 
関連する問題