The view portion has this:
def question_check_anon(request, quiz):
    """
    check if a question is correct, adds to score if needed and return the 
previous questions details
    """
    quiz_id = str(quiz.id)
    guess = request.GET['guess']
    answer = Answer.objects.get(id=guess)
    question = answer.question  #  the id of the question
    
    if answer.correct == True:
        outcome = "correct"
        score = quiz_id + "_score"
        current = request.session[score]
        current = int(current) + 1
        request.session[score] = current  #  add 1 to the score
        anon_session_score(request, 1, 1)
    else:
        outcome = "incorrect"
        anon_session_score(request, 0, 1)
        
    if quiz.answers_at_end != True:  #  display answer after each question
        return {'previous_answer': answer, 'previous_outcome': outcome, 
'previous_question': question, }
    else:  #  display all answers at end
        return {}
Related template :
<form action="/{{ quiz.url }}/take/" method="get">

    
<table class="table table-hover table-bordered" id="answerchoice">
<tbody>


{% for answer in answers %}
    <tr>
        <td>
                <label>
                    <input type="radio" name="guess" value="{{ answer.id 
}}" class="form-radio">
                    {{ answer.content }}
                </label>
        </td>
    </tr>
{% endfor %}
</form>
</tbody>
</table>
<input type="submit" value="Check" class="btn btn-large btn-block 
btn-warning" >

I guess I will change the template to

<label>
          <input type="checkbox" name="guess" value="{{ answer.id }}" 
class="form-radio"> True <input type="checkbox" name="guess" value="{{ 
answer.id }}" class="form-radio"> False ||
        
           {{ answer.content }}
 </label>

and view to:
    if answer.correct == True:
        outcome = "correct"
        score = quiz_id + "_score"
        current = request.session[score]
        current = int(current) + 1
        request.session[score] = current  #  add 1 to the score
        anon_session_score(request, 1, 1)
    elif answer.incorrect == True:
        outcome = "correct"
        score = quiz_id + "_score"
        current = request.session[score]
        current = int(current) + 1
        request.session[score] = current
        anon_session_score(request, 1, 1)    
    else:
        outcome = "incorrect"
        anon_session_score(request, 0, 1)


but the result is not what I expected.



On Monday, March 10, 2014 12:04:35 PM UTC+6, orchid barua wrote:
>
> I want to modify the django-quiz application.
> https://github.com/tomwalker/django_quiz
>
> The quesiton will be a multiple true false type. Each question will have 5 
> stem, each will be tested for true/false. Each will carry partial marks eg. 
> 1 will be awarded for a correct ans. And there will be a system for penalty 
> eg. deduct 0.5 marks for a wrong answer of a stem. 
>
> I am modifying the model like this:
>
> *Question model:*
> class Question(models.Model):
>
>     quiz = models.ManyToManyField(Quiz, blank=True, )
>     
>     category = models.ForeignKey(Category, blank=True, null=True, )
>     
>     content = models.CharField(max_length=1000, 
>                                blank=False, 
>                                help_text="Enter the question text that you 
> want displayed",
>                                verbose_name='Question',
>                                )
>     
>     explanation = models.TextField(max_length=2000,
>                                    blank=True,
>                                    help_text="Explanation to be shown 
> after the question has been answered.",
>                                    verbose_name='Explanation',
>                                )
>     
>
> class Answer(models.Model):
>     question = models.ForeignKey(Question)
>     
>     content = models.CharField(max_length=1000, 
>                                blank=False, 
>                                help_text="Enter the answer text that you 
> want displayed",
>                                )
>     
>     correct = models.BooleanField(blank=False, 
>                                   default=False,
>                                   help_text="Is this a correct answer?"
>                                   )
>     incorrect = models.BooleanField(blank = False, default =False, 
> help_text = "is this incorrect ?")
>
> The original quiz model is here:
> https://github.com/tomwalker/django_quiz/blob/master/quiz/models.py
>
> How can I modify the view and models to achieve my functionality? Can you 
> please atleast suggest an algorithm for the process?
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/7067f206-9d9d-429d-852d-66a91145b0e7%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to