Looks like you've got survey_id as a variable in your URL query string, so 
it will end up in request.get_vars. When you edit a record, the form also 
includes a survey_id variable, which will end up in request.post_vars. 
request.vars is a combination of get_vars and post_vars, so if they both 
contain a variable with the same name, when merged into request.vars, those 
values get combined into a list.

To avoid the problem, just use request.get_vars.survey_id in your code (or 
use a variable name other than survey_id in your query string).

Anthony

On Thursday, January 30, 2014 8:08:29 AM UTC-5, Johann Spies wrote:
>
>
> In the following controller when edit a row and submit, 
> request.vars.survey_id changes from '3'  to ['3', '3']
> but not if I click on 'Back'  without editing.  Why?
>
> I had to use the following workaround: 
>
>      survey_id = request.vars.survey_id[0] if isinstance(survey_id, list) 
> else request.vars.survey_id 
>
>
> @auth.requires_login()
> def edit_survey():
>      response.view = 'default/survey_create.html'
>      survey_id = request.vars.survey_id
>      if isinstance(survey_id, list):
>          survey_id = survey_id[0]
>      survey = db.survey[survey_id]
>      db.questions.id.readable = False
>      if 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)
>          header = H3(T('%s for editing' % db.survey[survey_id].name))
>      else:
>          header = H3(T('No valid survey selected'))
>          form = ''
>      return dict(header = header, form = questions)
>
> 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.

Reply via email to