Hi I'm trying to get the value from request.args(0) and use it in the submitting of a form.
I want 'game_id' to be automatically assigned the args value (which is the unique ID of the game in my games table.
def review():
getId = db.games(request.args(0)) or redirect(URL('default', 'index'))
formReview = SQLFORM(db.reviews,fields = ['game_id','title','review']).process()
db.reviews.game_id.default= request.args(0)
formReview.vars.game_id = request.args(0)
if formReview.accepted: redirect(URL('index'))
return dict(formReview=formReview, getId=getId)
db.define_table('reviews',
Field('title',requires=IS_NOT_EMPTY()),
Field('review','text',requires=IS_NOT_EMPTY()),
Field('game_id', 'reference games'))
I thought the line:
formReview.vars.game_id = request.args(0)
would pre populate the field but it isn't working.
The most reliable way to pre-populate the form is by setting the field's default value (which must be done before creating the form):
def review():
getId = db.games(request.args(0)) or redirect(URL('default', 'index'))
db.reviews.game_id.default = request.args(0)
formReview = SQLFORM(db.reviews, fields=['game_id','title','review']).process()
if formReview.accepted: redirect(URL('index'))
return dict(formReview=formReview, getId=getId)