Hi everyone, some progress has been made... :)

Adding this to gql.py I am able to import tables that contain strings.
However I receive a type error when importing a table that has a
column of type boolean.

The code: contrib/gql.py

class SQLTable(SQLStorage):
[..]

def import_from_csv_string(self, csv_string):
        """
        # changed by dc.
        import records from csv STRING. Column headers must have same names as
        table fields. (field 'id' is ignored.) If column names read 'table.file'
        the 'table.' prefix is ignored.
        """
        # reader needs an iterable that returns a line each time
        csv_list = []
        for l in csv_string.split('\n'):
            csv_list.append(l)

        reader = csv.reader(csv_list)
        colnames=None
        for line in reader:
            if not colnames:
                colnames=[x[x.find('.')+1:] for x in line]
                # c=[i for i in xrange(len(line)) if colnames[i]!='id']
                c=[i for i in xrange(len(line))]
            else:
                items=[(colnames[i],line[i]) for i in c]
                self.insert(**dict(items))

The error:

ERROR    2008-11-23 14:11:57,150 main.py] Traceback (most recent call last):
  File "/path/gluon/restricted.py", line 62, in restricted
    exec ccode in environment
  File "/path/applications/my_app/models/db.py", line 52, in <module>
    db.is_free.import_from_csv_string(result.content)
  File "/path/gluon/contrib/gql.py", line 218, in import_from_csv_string
    self.insert(**dict(items))
  File "/path/gluon/contrib/gql.py", line 190, in insert
    tmp=self._tableobj(**fields)
  File 
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py",
line 587, in __init__
    prop.__set__(self, value)
  File 
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py",
line 387, in __set__
    value = self.validate(value)
  File 
"/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/ext/db/__init__.py",
line 2132, in validate
    raise BadValueError('Property %s must be a bool' % self.name)
BadValueError: Property free must be a bool


Daniel

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py Web Framework" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to