On Nov 29, 2009, at 2:17 PM, Lukasz Szybalski wrote:

> I guess the proper solution is to setup your python class mapper like
> this, and use the update method of the __dict__ instead of setattr.
> 
> class Recall(object):
>    def __init__(self, **kw):
>        self.__dict__.update(kw)
>    pass

if Recall is ORM-mapped, the above won't work.  use setattr(), not __dict__ 
access.

> 
> 
> Lucas
> 
> On Thu, Nov 26, 2009 at 3:24 PM, Lukasz Szybalski <[email protected]> wrote:
>> Any idea how should I be set the None Type argument to str.?
>> 
>> x=Recall()
>> type(x.MAKETXT) is <type 'NoneType'>
>> 
>> set in OrmObject when it does the setattr it probably fails because
>> you cannot setattr on NoneType objects?
>> 
>> setattr(x.MAKETXT,'somevalue')

don't you mean setattr(x, 'MAKETXT', 'somevalue') here?





>> Traceback (most recent call last):
>>  File "<stdin>", line 1, in <module>
>> TypeError: attribute name must be string, not 'NoneType'
>> 
>> 
>> What is the proper way to do this?
>> Thanks,
>> Lucas
>> 
>> On Wed, Nov 25, 2009 at 10:36 PM, Lukasz Szybalski <[email protected]> 
>> wrote:
>>> http://www.sqlalchemy.org/trac/wiki/UsageRecipes/GenericOrmBaseClass
>>> 
>>> class Recall(OrmObject):pass
>>> 
>>> mapper(Recall,recall_table)
>>> 
>>> record=Recall(RECORD_ID=RECORD_ID,CAMPNO=CAMPNO,MAKETXT=MAKETXT)
>>> session.add(record)
>>> session.flush()
>>> 
>>> This is not working if using the example set in the url. Is setattr
>>> still working.....? What is the proper way to do this.....for SA
>>> 0.5.6?
>>> 
>>> SQLAlchemy 0.5 Implementation:
>>> 
>>> class OrmObject(object):
>>> 
>>>    def __init__(self, **kw):
>>>        for key in kw:
>>>            if not key.startswith('_') and key in self.__dict__:
>>>                setattr(self, key, kw[key])
>>> 
>>>    def __repr__(self):
>>>        attrs = []
>>>        for key in self.__dict__:
>>>            if not key.startswith('_'):
>>>                attrs.append((key, getattr(self, key)))
>>>        return self.__class__.__name__ + '(' + ', '.join(x[0] + '=' +
>>>                                            repr(x[1]) for x in attrs) + ')'
>>> 
>>> Thanks,
>>> Lucas
>>> 
>> 
>> 
>> 
>> --
>> Setup CalendarServer for your company.
>> http://lucasmanual.com/mywiki/CalendarServer
>> Automotive Recall Database - See if you vehicle has a recall
>> http://lucasmanual.com/recall
>> 
> 
> 
> 
> -- 
> Setup CalendarServer for your company.
> http://lucasmanual.com/mywiki/CalendarServer
> Automotive Recall Database - See if you vehicle has a recall
> http://lucasmanual.com/recall
> 
> --
> 
> You received this message because you are subscribed to the Google Groups 
> "sqlalchemy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to 
> [email protected].
> For more options, visit this group at 
> http://groups.google.com/group/sqlalchemy?hl=en.
> 
> 

--

You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sqlalchemy?hl=en.


Reply via email to