Ho yeah, I forget about that option...

Thanks Alan

Richard

On Wed, Mar 14, 2012 at 6:53 PM, Alan Etkin <[email protected]> wrote:

> I have not experience with the book csv output example, but it looks
> different than your implementation:
>
> -It has a special view "..../name.csv" to render the function output
> -The Content-Type parameter is "application-vnd.ms-excel"
>
> I think you could change the response view parameter on form
> validation to .../name.csv, have the function to return a dict object
> and use the book example view to return the csv file response.
>
> The example I am refering to is in section 10.1.6
>
> On 14 mar, 18:19, Richard <[email protected]> wrote:
> > Hello,
> >
> > I strungle with export of csv... I have this function that works great :
> >
> > def export_csv(tab1_id):
> >     import gluon.contenttype
> >     response.headers['Content-Type'] = \
> >         gluon.contenttype.contenttype('.csv')
> >     import cStringIO
> >     stream=cStringIO.StringIO()
> >     db((db.tab1.id == tab1_id)).select().export_to_csv_file(stream)
> >     response.headers['Content-disposition'] = 'attachment;
> filename=%s.csv'
> > % 'test12345'
> >     response.write(stream.getvalue())
> >
> > def export_default_analysis_request():
> >     tab1_subset = (db.tab1.bool1 == True)
> >     form = SQLFORM.factory(
> >             Field('tab1_id',
> > requires=IS_IN_DB(db(tab1_subset),'tab1.id','%(f1)s')),
> >                 submit_button=T('Submit'))
> >     if form.accepts(request.vars, session):
> >         response.flash = T('form accepted')
> >         export_csv(tab1_id = form.vars.tab1_id)
> >     elif form.errors:
> >         response.flash = T('form has errors')
> >     else:
> >         response.flash = T('please fill out the form')
> >     return dict(form=form)
> >
> > The problem is that I am getting the html page below the value I want to
> > export...
> >
> > Do I need to redirect on a blank page? It likes if response contain the
> > actual page that get out at the same time as the data...
> >
> > I just copy stuff from here and there, but I think I will have to better
> > understand what is going on...
> >
> > Thanks
> >
> > Richard
>

Reply via email to