Hello,

I have a simple app. It's a cumtom SQLFORM form. When fill it in
index, all seems ok, but in the redirect ('buscar_coche_ocasion'),
where is the same form, raise an error:

ValueError: invalid literal for int() with base 10: '|75|75|'

That's is: the var 'potencia' is sending twice, and stored in a list.

If 'potencia' is passed as args, all is ok.


controler:

def index():

    form2 = SQLFORM(db.busqueda_coche_ocasion)
    if form2.process(session=None,
formname='fcoche_ocasion').accepted:
        redirect(URL('default','buscar_coche_ocasion',
args=([form2.vars.marca,form2.vars.modelo]),
vars={'potencia':form2.vars.potencia}))
    elif form2.errors:
        response.flash = T('error')
    else:
        pass

##Another form.....

    return dict()

view index.html:

<form action="" enctype="multipart/form-data" method="post"
name='fcoche_ocasion'>
<fieldset>
<legend>{{=T('Coche de ocasión')}}</legend>
<table>
<tr id="busqueda_coche_ocasion_marca__row">
    <td class="w2p_fl"><label for="busqueda_coche_ocasion_marca"
id="busqueda_coche_ocasion_marca__label">{{=T('Marca: ')}} </label>
    </td>
    <td
class="w2p_fw">{{=SELECT(MARCA_PRUEBA,_type='text',_class='string',_name='marca',
_id='busqueda_coche_ocasion_marca')}}
    </td>
    <td class="w2p_fc"></td>
</tr>

<tr id="busqueda_coche_ocasion_modelo__row">
    <td class="w2p_fl"><label for="busqueda_coche_ocasion_modelo"
id="busqueda_coche_ocasion_modelo__label">{{=T('Modelo: ')}} </label></
td>
    <td
class="w2p_fw">{{=SELECT(MODELOS_PRUEBA,_type='text',_class='string',_name='modelo',_id='busqueda_coche_ocasion_modelo')}}
    </td>
    <td class="w2p_fc"></td>
</tr>

<tr id="busqueda_coche_ocasion_potencia__row">
    <td class="w2p_fl"><label for="busqueda_coche_ocasion_potencia"
id="busqueda_coche_ocasion_potencia__label">{{=T('Potencia mínima
(CV): ')}} </label></td>
    <td class="w2p_fw">{{=SELECT(POTENCIA_B,
value='75',_name='potencia',_class="string",_id="busqueda_coche_ocasion_potencia")}}
</td>
    <td class="w2p_fc"></td>
</tr>

<tr id="submit_record__row">
    <td class="w2p_fl"></td>
    <td class="w2p_fw">
        <input type="submit" value="{{=T('Buscar coche de
ocasión')}}" />
    </td>
    <td class="w2p_fc"></td>
</tr>
</table>
</fieldset>
    <td class="hidden"><input name="_formname" type="hidden"
value="fcoche_ocasion" />
    </td>
</form>

db.py

POTENCIA=(10,50,75,100,120)
POTENCIA_B=('Todos',)+POTENCIA
MARCA_PRUEBA=('Volvo','BMW')
MODELOS_PRUEBA=('121','122','123','144')

db.define_table('busqueda_coche_ocasion',
    Field('usuario', readable=False, writable=False,
default=(auth.user_id or 'anonymous')),
    Field('marca',),
    Field('modelo',),
    Field('potencia',),
    )

db.busqueda_coche_ocasion.potencia.requires = IS_IN_SET(POTENCIA_B)

db.define_table('coche_ocasion',
    Field('vendedor_id', default = auth.user_id, readable=False,
writable=False),
    Field('marca',),
    Field('modelo',),
    Field('potencia', 'integer',),
    )

db.coche_ocasion.marca.requires = IS_IN_SET(MARCA_PRUEBA)
db.coche_ocasion.modelo.requires = IS_IN_SET(MODELOS_PRUEBA)

view: 'buscar_coche_ocasion.html'

{{if listado_coches_ocasion:}}
        {{=H3(T('Estos son los coches encontrados: '))}}
    {{for item in listado_coches_ocasion:}}
        {{=item.marca+' '+item.modelo+' '+str(item.potencia)}}
<br>
    {{pass}}

{{else:}}
    {{=H3(T('No hay coches de ocasión de las características
especificadas'))}}
{{pass}}


<form action="" enctype="multipart/form-data" method="post"
name='fcoche_ocasion'>

<table>
<tr id="busqueda_coche_ocasion_marca__row">
    <td class="w2p_fl"><label for="busqueda_coche_ocasion_marca"
id="busqueda_coche_ocasion_marca__label">{{=T('Marca: ')}} </label>
    </td>
    <td
class="w2p_fw">{{=SELECT(MARCA_PRUEBA,_type='text',_class='string',_name='marca',
_id='busqueda_coche_ocasion_marca')}}
    </td>
    <td class="w2p_fc"></td>
</tr>

<tr id="busqueda_coche_ocasion_modelo__row">
    <td class="w2p_fl"><label for="busqueda_coche_ocasion_modelo"
id="busqueda_coche_ocasion_modelo__label">{{=T('Modelo: ')}} </label></
td>
    <td
class="w2p_fw">{{=SELECT(MODELOS_PRUEBA,_type='text',_class='string',_name='modelo',_id='busqueda_coche_ocasion_modelo')}}
    </td>
    <td class="w2p_fc"></td>
</tr>

<tr id="busqueda_coche_ocasion_potencia__row">
    <td class="w2p_fl"><label for="busqueda_coche_ocasion_potencia"
id="busqueda_coche_ocasion_potencia__label">{{=T('Potencia mínima
(CV): ')}} </label></td>
    <td class="w2p_fw">{{=SELECT(POTENCIA_B,
value='75',_name='potencia',_class="string",_id="busqueda_coche_ocasion_potencia")}}
</td>
    <td class="w2p_fc"></td>
</tr>

<tr id="submit_record__row">
    <td class="w2p_fl"></td>
    <td class="w2p_fw">
        <input type="submit" value="{{=T('Buscar coche de
ocasión')}}" />
    </td>
    <td class="w2p_fc"></td>
</tr>
</table>

    <td class="hidden"><input name="_formname" type="hidden"
value="fcoche_ocasion" />
    </td>
</form>

Reply via email to