Hi all...

I'm working on building an oline examination system. Here is a view
which picks some questions randomly from the database and generates 10
questions.

I could able to display these questions on the web page. In that web
page there should be a formset which have options A, B, C, D. The name
of the form in that "formset" should be the unique question ID which I
gave.

How to assign form ID to each form in a "frameset" Before it renders
to the user??

Please give me your suggestions. I don't have any Idea on this.

Here is the view which calculates the random questions.

//*********views.py***************//

from django.forms.formsets import formset_factory


def start_exam(request, sub_code, template_name = 'accounts/
start_exam.html', answer_form=AnswerForm, current_app=None,
extra_context=None):

        nq_in_exam = 10

        if request.method == "POST":
        //some logic goes here to process the submitted form.
        else:
                questions = Question.objects.filter(subject_code = sub_code)

                n = questions.count()
                if (n < nq_in_exam):
                        return render_to_response(template_name)

                m = int(math.floor(n/nq_in_exam))

                position = 0
                temp_list=[]
                id_list = []

                for object in Question.objects.filter(subject_code = sub_code):
                        temp_list.append(object.id)

                for i in range(nq_in_exam):
                        id_list.append(temp_list[int(position
+math.floor(random.random()*m))])
                        position +=m

                exam = Question.objects.filter(id__in = id_list)

                formset = formset_factory(answer_form)

                context = { 'formset': formset, 'questions':exam }

                context.update(extra_context or {})

                return render_to_response(template_name, context,
context_instance=RequestContext(request, current_app=current_app))


------------------------------------------------------------------------------------------------------------------------------------------------------------------
Here is the form which is to be in formset.

//*********forms.py*****************//

ANSWER_CHOICES = (('A','A'),('B','B'),('C','C'),('D','D'))

class AnswerForm(forms.Form):
        options = forms.ChoiceField(choices = ANSWER_CHOICES, widget =
forms.RadioSelect())

---------------------------------------------------------------------------------------------------------------------------------------------------------------
Here is the template logic I have written to render that page.

<form name = "exam_form" action ="." method ="POST">
{%for form in formset%}
        {{form}}
{%endfor%}
<input type="submit" value="submit" />
</form>





-- 
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 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to