there are meny problems here.
1) in index you do insert after redirect so the insert is never
executed
2) you use new_student instead of rquest.vars.new_student
3) you access form.vars in action where it is not defined (after
redirect)
4) you denormalize the student name in student_information (soon or
later it will give you trouble)
5) the workflow is not clear.
###########################################
#
ne=IS_NOT_EMPTY(error_message=T('not empty'))
db.define_table('student',
             Field('first_name',requires=ne),
             Field('middle_initial',requires=ne),
             Field('last_name') ,requires=ne,
             Field('student_ID',requires=ne),
             Field('student_address',requires=ne),
             Field('student_phone',requires=ne),
             Field('student_email',requires=ne))

db.define_table('student_information',
                Field('student_id')
                Field('married', 'boolean',default=False),
                Field('spouse_name'))
def index():
    """ a simple entry form with various types of objects """
    form = SQLFORM.factory(Field('student_id',comment='leave blank if
new student'))
    if form.accepts(request.vars, session):
        if not form.vars.student_id.strip():
          redirect(URL(r=request, f='new_student'))
        else:
          redirect(URL(r=request,
f='student',args=from.vars.student.id))
    elif form.errors:
        response.flash = 'form is invalid'
    else:
        response.flash = 'please fill the form'
    return dict(form=form, vars=form.vars)

def new_student():
         form = crud.create(db.student,
              next=URL(r=request,f='insurance_subscriber'))
         return dict(form=form)

def student():
    thisstudent = db((db.student.student_ID == request.args
(0))).select
()
    if not thisstudent:
        session.flash='Invalid student id'
        redirect(URL(r=request, f='index'))

    return dict()

def student_information():
         thisstudent = db.student[request.args(0)]
         if not thisstudent:
             redirect(URL(r=request, f='index'))
         thisstudent_information = db
(db.student_information.student_id == thisstudent.id).select()
         return dict(thisstudent_information =thisstudent_information)


On Oct 29, 8:10 am, dbb <debe...@yahoo.com> wrote:
> In all cases the code can not find the data in the database even if it
> exists;
> the redirect is not executed;
> also may be the request.args(0)  logic is wrong. Any help on this,
> those experienced web2py users
>
> On Oct 29, 7:03 am, dbb <debe...@yahoo.com> wrote:
>
> > I have the following data structure, what I want is the following:
> > if the data entered is not in the database to enter it, then redirect
> > to student
> > information to enter the new data for the student. Once the data is
> > in, the next time I enter the same data,the program compares the
> > student ID in the database and if a match is
> > found  I want the data to display.
> > But this code is not doing that, need help on this
>
> > ###############################################################
> > database for a student############################
> > db.define_table('student',
> >              Field('first_name'),
> >              Field('middle_initial'),
> >              Field('last_name'),
> >              Field('student_ID'),
> >              Field('student_address'),
> >              Field('student_phone'),
> >              Field('student_email'))
>
> > db.define_table('student_information',
> >                 Field('name' ),
> >                 Field('student_id')
> >                 Field('married', 'boolean'),
> >                 Field('spouse_name'))
> > ####################################################################prompt
> > for a student information###############################
>
> > ef index():
> >     """ a simple entry form with various types of objects """
>
> >     form = FORM(TABLE(
> >         TR('Your First:', INPUT(_type='text', _name='Fname',
> >            requires=IS_NOT_EMPTY())),
>
> >         TR('Your Middle Initial:', INPUT(_type='text', _name='Mname',
> >            requires=IS_NOT_EMPTY())),
>
> >         TR('Your Last Bane :', INPUT(_type='text', _name='Lname',
> >            requires=IS_NOT_EMPTY())),
>
> >         TR('Your student ID Number:', INPUT(_type='text', _name='Pid',
> >            requires=IS_NOT_EMPTY())),
>
> >         TR('Your email:', INPUT(_type='text', _name='e-mail',
> >            requires=IS_EMAIL())),
>
> >         TR('Your address:', INPUT(_type='text', _name='Paddress',
> >            requires=IS_NOT_EMPTY())),
>
> >         TR('Your Phone Number:', INPUT(_type='text', _name='Pphone',
> >            requires=IS_NOT_EMPTY())),
>
> >         TR('Are You  a New student', INPUT(_type='checkbox',
> > _name='new_student')),
>
> >         TR('', INPUT(_type='submit', _value='SUBMIT')),
> >         ))
> >     if form.accepts(request.vars, session):
> >         response.flash = 'form accepted'
> >         if new_student:
> >           redirect(URL(r=request, f='new_student'))
> >           db.student.insert(first_name = form.vars.Fname)
> >           db.student.insert(last_name = form.vars.Lname)
> >           db.student.insert(middle_initial = form.vars.Mname)
> >           db.student.insert(student_phone = form.vars.Pphone)
> >           db.student.insert(first_name = form.vars.Fname)
> >           db.student.insert(student_address = form.vars.Paddress)
> >           db.student.insert(first_name =form.vars.Fname)
> >         elif redirect(URL(r=request, f='student'))
>
> >     elif form.errors:
> >         response.flash = 'form is invalid'
> >     else:
> >         response.flash = 'please fill the form'
> >     return dict(form=form, vars=form.vars)
> > ############################################inserting new information
> > of a student######################################################
> > def new_student():
>
> >          form = crud.create(db.student,
> >               next=URL(r=request,f='insurance_subscriber'))
>
> >          return dict(form=form)
>
> > def new_student_information():
>
> >          thisstudent = db.student[request.args(0)]
> >          if not thisstudent:
> >              redirect(URL(r=request, f='index'))
> >          db.student_information.student_id.default=thisstudent.id
>
> >          form = crud.create(db.student_information)
>
> >          return dict(form=form)
>
> > #########################################accessing existing
> > information###########################################################
> > def student():
> >     thisstudent = db((db.student.student_ID == form.vars.Pid)).select
> > ()
> >     #thisstudent = db.student[request.args(0)]
> >     if not thisstudent:
> >         redirect(URL(r=request, f='index'))
>
> >     return dict( records=records)
>
> > def student_information():
>
> >          thisstudent = db.student[request.args(0)]
> >          if not thisstudent:
> >              redirect(URL(r=request, f='index'))
> >          thisstudent_information = db
> > (db.student_information.student_id == thisstudent.id).select()
>
> >          return dict(thisstudent_information =
> > thisstudent_information)
> > ###########################################################################­#####################################
> > ((=records}}  in student.html
> > {{=thisstudent_informationa0 in student_information
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to