perhaps you can use random ref: http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#orderby--groupby--limitby--distinct--having-orderby_on_limitby-left-cache https://groups.google.com/forum/#!topic/web2py/-Y2JL2cIQEI
best regards, stifan On Thursday, August 6, 2015 at 4:10:01 AM UTC+7, Fabiano Almeida wrote: > > Hi Sai, > > Can you try this: > > import random > > ## first option to select question > s = number of lines of your table > i = random.randint(0,s) > > ## second option to select question - best: no broke if delete any record > on table > s = db(db.ins_ques.id > 0).select(db.ins_ques.id) > i = random.sample(s,1) > > ## how to query your question > question=db(db.ins_ques.id == i).select(db.ins_ques.ALL).first() > > [...] > > > Fabiano. > > 2015-07-28 5:51 GMT-03:00 Sai Harsh Tondomker <[email protected] > <javascript:>>: > >> I have trying to display random question for every login (Means client >> get different questions for every login). >> Here I gave my db.py and def doing paper. Please help me to solve the >> problem. >> >> >> db.define_table('ins_ques', >> Field('qnum','integer',notnull=True,readable=False,writable=False,label='Question >> >> Number'), >> Field('qupload','upload',label='Upload Image'), >> Field('question','text',notnull=True,label='Question'), >> Field('op1','string',notnull=True,label='Option A'), >> Field('op2','string',notnull=True,label='Option B'), >> Field('op3','string',notnull=True,label='Option C'), >> Field('op4','string',notnull=True,label='Option D'), >> Field('cor_ans',requires=IS_IN_SET(['A','B','C','D'],multiple=True),label='Correct >> >> Answer',widget=SQLFORM.widgets.checkboxes.widget) >> ) >> db.define_table('ans_ques', >> Field('qdate','date',readable=False,writable=False,label='Date of Paper'), >> Field('qnum','integer',readable=False,writable=False), >> Field('studentid','integer',readable=False,writable=False), >> >> Field('answer','string',requires=IS_IN_SET(['A','B','C','D'],multiple=True),widget=SQLFORM.widgets.checkboxes.widget) >> ) >> db.define_table('marks', >> Field('studentid',db.auth_user,requires=IS_IN_DB(db((db.auth_user.id==db.auth_membership.user_id)&(db.auth_membership.group_id== >> >> db.auth_group.id)&(db.auth_group.role=='students')),'auth_user.id >> ','auth_user.first_name'),readable=False,writable=False), >> Field('marks','integer')) >> >> >> >> def doing_paper(): >> pid=auth.user_id >> q_num=int(request.vars.q_num) >> question=db((q_num==db.ins_ques.qnum)).select(db.ins_ques.ALL) >> val=db(db.ins_ques).select(db.ins_ques.ALL) >> rmax=0 >> for f in val: >> rmax+=1 >> if (q_num <= 0): >> response.flash='This is the first question!!!!' >> q_num=1 >> redirect(URL(r=request,f='doing_paper?q_num=%s') % (q_num) ) >> elif (len(question) > 0) : >> for i in question: >> if i: >> question=i >> break >> else: >> q_num=q_num-1 >> redirect(URL(r=request,f='preprocess?q_num=%s') % (q_num)) >> else: >> q_num=q_num-1 >> redirect(URL(r=request,f='preprocess?q_num=%s') % (q_num)) >> if question: >> form=SQLFORM.factory(db.ans_ques) >> form.vars.qnum=q_num >> form.vars.studentid=pid >> >> answered=db((db.ans_ques.answer!='||')&(db.ans_ques.studentid==pid)).select(db.ans_ques.qnum) >> n=[] >> for k in answered: >> n.append(k['qnum']) >> >> ans_yet=db((db.ans_ques.studentid==pid)&(db.ans_ques.qnum==q_num)).select(db.ans_ques.answer) >> if(ans_yet and ans_yet[0]['answer']!='||'): >> form.vars.answer=ans_yet[0]['answer'] >> if form.accepts(request.vars,session): >> if >> db((db.ans_ques.qnum==q_num)&(db.ans_ques.studentid==pid)).select(db.ans_ques.answer): >> >> db((db.ans_ques.qnum==q_num)&(db.ans_ques.studentid==pid)).update(answer=form.vars.answer) >> else: >> db.ans_ques.insert(answer=form.vars.answer,qnum=q_num,studentid=pid) >> q_num=q_num+1 >> redirect(URL(r=request,f='doing_paper?q_num=%s') % (q_num)) >> return locals() >> >> Regards >> Sai Harsh >> >> -- >> Resources: >> - http://web2py.com >> - http://web2py.com/book (Documentation) >> - http://github.com/web2py/web2py (Source code) >> - https://code.google.com/p/web2py/issues/list (Report Issues) >> --- >> You received this message because you are subscribed to the Google Groups >> "web2py-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected] <javascript:>. >> For more options, visit https://groups.google.com/d/optout. >> > > -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

