Ok, I upgraded to the development version of django and that didn't help. I then started to try and trim out the code so it was of a more manageable size to post here. It's still rather large but if it helps anyone visualize what I'm talking about, here it is:
## test_indexs.html <h4>Take the Test</h4> <form action="." method="post"> <table> {{ form }} </table> <input type="submit" value="Take Test" /> </form> ## take_tests.html {{ questions_asked }} {% if score_page %} {{ num }} <h1 id="your_score">Your score is: {{ score|floatformat:2 }}% ({{ num_correct }}/{{ total }})</h1> <img id="score_tach" src="/flight/grade/tach.gif? score={{ score }}" /> {% else %} <h3>{{ question.id }} {{ question.question }}</h3> <form method="post" action="."> <input type="hidden" name="number_of_questions" value="{{ num }}" / > <ul> {% for answer in answers %} <li class="answers"><input type="submit" name="{{ answer.0 }}" value="{{ answer.1 }}" /></li> {% endfor %} </ul> </form> {% endif %} ## views.py def sessiontest(request): if 'questionlist' in request.session: questions_asked = request.session['questionlist'] if request.method == "POST": if request.session.get('num_questions',False): # If there is a GET var called num_questions if request.session['current_question'] < request.session['num_questions']: request.session['current_question'] += 1 question = Question.objects.order_by('?')[0] # Get a random question request.session['previous_question'] = question answers = list(enumerate([question.correct_answer, question.other_answer_1, question.other_answer_2])) shuffle(answers) try: request.session['questionlist'] = questions_asked.append(int(question.id)) except AttributeError: request.session['questionlist'] = [(int(question.id)),] return render_to_response('take_tests.html', {'current_num':request.session['current_question'], \ 'num':request.session['num_questions'], \ 'question':question, \ 'first_page':False, \ 'questions_asked':questions_asked, \ 'answers': answers}) else: score = (float(request.session['num_correct'])/ float(request.session['num_questions']))*100 return render_to_response('take_tests.html', {'correct':request.session['num_correct'], \ 'total':request.session['num_questions'], \ 'score':score, \ 'score_page':True, \ 'num_correct':request.session['num_correct'] }) else: # No num_questions var set... show/process form form = TestForm(request.POST) if form.is_valid(): num_questions = form.cleaned_data['number_of_questions'] request.session['num_questions'] = num_questions request.session['current_question'] = 1 request.session['num_correct'] = 0 question = Question.objects.order_by('?')[0] # Get a random question request.session['previous_question'] = question answers = list(enumerate([question.correct_answer, question.other_answer_1, question.other_answer_2])) shuffle(answers) request.session['previous_answers'] = answers request.session['questionlist'] = [int(question.id),] # topics = request.POST['topics'] return render_to_response('take_tests.html', {'current_num':request.session['current_question'], \ 'num':num_questions, \ 'first_page':True, \ 'questions_asked':request.session['questionlist'], \ 'question':question, 'answers': answers,}) else: # Remove num_questions session key in case it is hanging around try: del request.session['num_questions'] except KeyError: pass form = TestForm() return render_to_response('test_indexs.html', {'form':form}) ###### End Code ####### If there is a problem storing lists in the session variables, then I can look at some other method. I just thought this would be the best solution. Also it works some of the time, just not all of the time. I don't understand why it's getting set to 'None'. -Chris --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---