this doesn't really say anything about the problem since neither of those
things changes anything about the objects.  the issue is related to the
flush().

Gloria W wrote:
>
> I've traced it further, and it's an odd problem.
>
> This syntax works fine:
>
>         memberProfile = self.session.query(MemberProfile).filter
> (MemberProfile.memberID.in_(memberid)).order_by
> (MemberProfile.memberID)
>         memberProfile = memberProfile.filter(MemberProfile.city ==
> 'Jamaica')
>         memberProfile = memberProfile.filter(MemberProfile.zip ==
> "11432")
>         memberProfile = memberProfile.order_by
> (MemberProfile.memberID).all()
>
> But this causes the error:
>
>         for field,value in fields.iteritems():
>           internal_field = getattr(MemberProfile,field)
>           memberProfile = memberProfile.filter(internal_field ==
> value)
>         memberProfile = memberProfile.order_by
> (MemberProfile.memberID).all()
>
> A trace reveals what I expect:
>
> (Pdb)
>> /var/www/ReST/models/MemberInfo.py(65)GET()
> -> if fields:
> (Pdb)
>> /var/www/ReST/models/MemberInfo.py(66)GET()
> -> memberProfile = self.session.query(MemberProfile).filter
> (MemberProfile.memberID.in_(memberid))
> (Pdb)
>> /var/www/ReST/models/MemberInfo.py(67)GET()
> -> for field,value in fields.iteritems():
> (Pdb)
>> /var/www/ReST/models/MemberInfo.py(69)GET()
> -> internal_field = getattr(MemberProfile,field)
> (Pdb) p field
> 'city'
> (Pdb) p value
> 'Jamaica'
> (Pdb) n
>> /var/www/ReST/models/MemberInfo.py(70)GET()
> -> memberProfile = memberProfile.filter(internal_field == value)
> (Pdb) p MemberProfile.city
> <sqlalchemy.orm.attributes.InstrumentedAttribute object at 0xb7796d8c>
> (Pdb) p internal_field
> <sqlalchemy.orm.attributes.InstrumentedAttribute object at 0xb7796d8c>
>
>
> A "getattr" returns the same address as the MemberProfile.city. So
> this should work, and worked perfectly when I inherited one class from
> the other.
>
>
> Here is the error:
>
>   File "/usr/lib/python2.4/site-packages/SQLAlchemy-0.5.0rc4-py2.4.egg/
> sqlalchemy/orm/sync.py", line 28, in clear
>     raise AssertionError("Dependency rule tried to blank-out primary
> key column '%s' on instance '%s'" % (r, mapperutil.state_str(dest)))
> AssertionError: Dependency rule tried to blank-out primary key column
> 'member_profiles.memberID' on instance '<MemberProfile at
> 0x-488574b4>'
>
> Very strange. The object returned by getattr seems the same. Am I
> missing something?
>
> Thanks once again,
> Gloria
> >
>


--~--~---------~--~----~------------~-------~--~----~
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