Thanks for reporting. should now be fixed in trunk.

On Wednesday, 21 March 2012 02:22:17 UTC-5, backseat wrote:
>
> My application has broken moving from 1.99.4 to 1.99.7.
>
> I have a field of type list:string (using Sqlite). In 1.99.7, dal.py
> breaks at line 1405 (marked with >>>):
>
>             return str(obj)
>         if fieldtype.startswith('list:'):
>             if not obj:
>                 obj = []
>             elif not isinstance(obj, (list, tuple)):
> >>>                obj = [int(obj)]
>
>             elif fieldtype.startswith('list:string'):
>                 obj = [str(item) for item in obj]
>             else:
>                 obj = [int(item) for item in obj]
>
> Because my field is type list:string, startswith('list:') is True and thus
> the startswith('list:string') line is never reached.
>
> This patch appears to fix the problem, although I've not tested it
> thoroughly:
>
> --- dal.py.old  2012-03-21 07:19:12.000000000 +0000
> +++ dal.py      2012-03-21 07:20:38.000000000 +0000
> @@ -1398,13 +1398,13 @@
>              return fieldtype.encoder(obj)
>          if isinstance(obj, (Expression, Field)):
>              return str(obj)
> -        if fieldtype.startswith('list:'):
> +        if fieldtype.startswith('list:string'):
> +                obj = [str(item) for item in obj]
> +        elif fieldtype.startswith('list:'):
>              if not obj:
>                  obj = []
>              elif not isinstance(obj, (list, tuple)):
>                  obj = [int(obj)]
> -            elif fieldtype.startswith('list:string'):
> -                obj = [str(item) for item in obj]
>              else:
>                  obj = [int(item) for item in obj]
>          if isinstance(obj, (list, tuple)):
>
> -- 
> "You can have everything in life you want if you help enough other people
> get what they want" - Zig Ziglar. 
>
> Who did you help today?
>
>

Reply via email to