If there are args in your URL not generated by the grid, you have to tell
the grid about it so it knows to include those args in the URLs it
generates (otherwise it just includes its own args). So, if you are using
the first URL arg for something, then do:
SQLFORM.grid(..., args=request.args[:1])
Anthony
On Tuesday, February 4, 2014 7:01:04 AM UTC-5, Johann Spies wrote:
>
> I have the following models:
>
> db.define_table('survey',
> Field('name', label = 'Name of the new survey',
> requires = IS_NOT_IN_DB(db, 'survey.name'),
> unique = True),
> Field('owner', db.auth_user, default = auth.user_id,
> readable = True, writable = False),
> Field('startdate', 'date'),
> Field('enddate', 'date'),
> format='%(name)s')
>
> db.define_table('questions',
> Field('survey_id', db.survey),
> Field('question_number', requires = IS_NOT_EMPTY()),
> Field('question', 'text', requires = IS_NOT_EMPTY(),
> represent = lambda value,row: XML(value),
> widget = advanced_editor),
> Field('answer_type', 'integer',
> requires=IS_IN_SET(ANSWER_TYPE)))
>
> db.define_table('options',
> Field('question_id', db.questions),
> Field('option_number'),
> Field('option'))
>
>
> When using the following grid, I can use the standard View/Edit/Delete
> buttons and it works as expected:
>
> survey_id = request.get_vars.survey_id
> query = db.questions.survey_id==survey_id
> fields = [db.questions.question_number,
> db.questions.question,db.questions.answer_type,
> db.questions.id]
> questions = SQLFORM.grid(query,
> editable = True,
> deletable = True,
> create = True,
> searchable = False,
> maxtextlength = 100,
> orderby=db.questions.question_number
> , user_signature = True)
>
> Example of url:
> http://localhost:8000/survey_app/default/edit_survey/edit/questions/2745?survey_id=220&_signature=1e41f2ab5820fe9422d7f1a552f61136cefb26a9
>
>
> But with this one, using anyone of those buttons ends with a 404 Not found
> message:
>
> qid = request.args(0,cast=int)
> query = db.options.question_id == qid
> fields = [db.options.id, db.options.option_number, db.options.option]
> form = SQLFORM.grid(query,
> editable = True,
> deletable = True,
> searchable = False,
> maxtextlength = 100,
> fields = fields,
> user_signature = True,
> create = False)
>
> Example of url:
> http://localhost:8000/survey_app/default/edit_options/edit/options/4694?_signature=ec61c90b8595bb73539a0e364f8f4e422f641dd7
>
> Question: Why can the second grid not find the records when I use the
> buttons?
> Both the id's in the url's (2745 and 4694) are valid.
>
> Regards
> Johann
>
>
>
--
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/groups/opt_out.