On 06/17/2016 12:44 PM, Chuck Bearden wrote:
I'm using SQLAlchemy 1.0.13 with Python 2.7.10.

I load much of my data naively from text files, which means that for
newly-created Declarative objects, all the values are strings, whatever
the declared column type:

|
fromsqlalchemy.ext.declarative importdeclarative_base
fromsqlalchemy importColumn,Integer,String

Base=declarative_base()

classOrganization(Base):
    __tablename__ ='organizations'
    id =Column(Integer,primary_key=True)
    org_type_id =Column(Integer,nullable=False)
    org_name =Column(String(255),nullable=False)

org =Organization(**{
  'org_type_id':'3',
  'org_name':'Type 3',
})

|


If the Organization object is added to the database, the org_type_id
value is converted to an 'int'. However, if I need to compare an object
already in the database with the newly instantiated one, the comparison
always fails because the int 3 from the database isn't the same as the
string '3' in the new object.

Is there a way to force the newly-created Organization to cast the
string '3' to an Integer/int without having to push it to the database?
I'd much prefer doing things this way to writing conversion functions
for loading that attempt to anticipate all the permutations incoming
data (e.g. date/times, numerics) might take. In other words, I'd like to
use the existing machinery, but have the converted values show up before
adding the object to the database.

seems appropriate for a basic validator:

http://docs.sqlalchemy.org/en/rel_1_0/orm/mapped_attributes.html?highlight=validates#simple-validators





Thanks in advance.
Chuck

--
You received this message because you are subscribed to the Google
Groups "sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to sqlalchemy+unsubscr...@googlegroups.com
<mailto:sqlalchemy+unsubscr...@googlegroups.com>.
To post to this group, send email to sqlalchemy@googlegroups.com
<mailto:sqlalchemy@googlegroups.com>.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at https://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to