Same thing with trunk... Richard
On Tue, Mar 27, 2012 at 3:52 PM, Richard <[email protected]>wrote: > This one to : > https://groups.google.com/forum/?fromgroups#!topic/web2py/H_QqV2g8IgQ > > I experimented the problem with 1.99.4 and 1.99.7 > > What I understand so far is that id_map get None by default, so when it > get here : > > [id_map[ref_table][int(v)] \ > for v in bar_decode_string('|35|1|')] > > It clears that it will raise the exception... > > I try to call my import function like this : > > def import_csv(table, file): > table.import_from_csv_file(file, id_map = {}) > > Noting better. > > Please help. > > Richard > > > Le mardi 27 mars 2012 15:45:50 UTC-4, Richard a écrit : > >> Seems related : https://groups.google.com/**forum/#!topic/web2py/** >> nYKsFPumXk0 <https://groups.google.com/forum/#!topic/web2py/nYKsFPumXk0> >> >> >> >> Le mardi 27 mars 2012 15:20:27 UTC-4, Richard a écrit : >>> >>> Hello, >>> >>> Is it possible the table csv import method be broken? >>> >>> When I use list:reference type field I can't import back a exported CSV >>> with the appadmin. >>> >>> I don't understand where the None value could come from... >>> >>> When I try to implement my own csv import function base on this thread : >>> https://groups.google.com/**forum/?fromgroups#!topic/** >>> web2py/lDi0lLK_Wm0<https://groups.google.com/forum/?fromgroups#!topic/web2py/lDi0lLK_Wm0> >>> >>> That work fine, until I try to import data with list:reference type >>> field (|id| or |id|id|, etc.) >>> >>> I get this traceback : >>> >>> for v in bar_decode_string(value)] >>> TypeError: 'NoneType' object is unsubscriptable >>> >>> >>> - >>> >>> >>> Function argument list >>> >>> (field=<gluon.dal.Field object>, value='|35|1|', id_map=None) >>> Code listing >>> >>> 5683. >>> 5684. >>> 5685. >>> 5686. >>> 5687. >>> >>> 5688. >>> >>> 5689. >>> 5690. >>> 5691. >>> 5692. >>> >>> elif field.type.startswith('list:**string'): >>> >>> value = bar_decode_string(value) >>> >>> elif field.type.startswith(list_**reference_s): >>> >>> ref_table = field.type[len(list_reference_**s):].strip() >>> >>> value = [id_map[ref_table][int(v)] \ >>> >>> for v in bar_decode_string(value)] >>> >>> elif field.type.startswith('list:')**: >>> >>> value = bar_decode_integer(value) >>> >>> elif id_map and field.type.startswith('**reference'): >>> >>> try: >>> >>> Variables global bar_decode_string <function bar_decode_string> >>> value'|35|1|' >>> v '35' >>> >>> What is exactly id_map? >>> >>> I think problem is coming from there... >>> >>> Thanks >>> >>> Richard >>> >>

