Any idea ?

--- On Tue, 8/31/10, chaouche yacine <[email protected]> wrote:

> From: chaouche yacine <[email protected]>
> Subject: [elixir] A simple print seems to disable relation updates from ids
> To: "elixir" <[email protected]>
> Date: Tuesday, August 31, 2010, 9:53 AM
> Hi list,
> 
> I tried to follow this advice from gaëtan 
> http://groups.google.com/group/sqlelixir/browse_thread/thread/43c76ab74be218e8/fb7fe0070edd56fa?#fb7fe0070edd56fa
> to try to update a relation simply by passing the associated
> id to it. (a.b_id = b.id and then assert a.b == b)
> 
> But the following code shows that something is going wrong
> when I print a.b before setting a.b_id and flushing. 
> 
> Versions :
> 
> (my-coriolis)chaou...@jogger:/usr/share/pyshared/elixir$
> python -c "import elixir; print elixir.__version__"
> 0.7.1
> (my-coriolis)chaou...@jogger:/usr/share/pyshared/elixir$
> python -c "import sqlalchemy; print sqlalchemy.__version__"
> 0.5.8
> (my-coriolis)chaou...@jogger:/usr/share/pyshared/elixir$
> python --version
> Python 2.6.5
> (my-coriolis)chaou...@jogger:/usr/share/pyshared/elixir$ 
> 
> 
> --------
> 
> 
> from elixir import *
> 
> class BaseModel(Entity):
>     using_options(abstract=True)
>     def __repr__(self):
>         return "<%s '%s'>" %
> (self.__class__.__name__,self.name)
> 
> class Person(BaseModel):
>     using_options(tablename = "persons")
> 
>     name = Field(String)
>     city = ManyToOne("City")
> 
> class Country(BaseModel):
>     """
>     """
>     using_options(tablename = "countries")
> 
>     name       =
> Field(String)
>     cities     =
> OneToMany("City")
> 
> class City(BaseModel):
>     """
>     """
>     using_options(tablename = "cities")
> 
>     name    = Field(String)
>     country = ManyToOne("Country")
>     persons = OneToMany("Person")
> 
> algeria = None
> algiers = None
> blida   = None
> 
> def create():
>     global algeria,blida,algiers
>     algeria = Country(name="Algeria")
>     algiers = City(name="Algiers")
>     blida   = City(name="Blida")
>     session.commit()
> 
> def load():
>     global algeria,blida,algiers
>     algeria = Country.get(1)
>     algiers = City.get(1)
>     blida   = City.get(2)
> 
> metadata.bind      = "postgres://some_db"
> session.bind       =
> metadata.bind
> setup_all()
> drop_all()
> create_all()
> create()
> load()
> 
> # Uncomment this line and you'll get None the second time
> you print algiers.country (after the flush)
> print "before",algiers.country
> algiers.country_id = algeria.id
> session.flush()
> print "after",algiers.country
> print algeria.cities
> 
> 
> 
> Any help appreciated.
> 
> 
> 
>       
> 
> -- 
> You received this message because you are subscribed to the
> Google Groups "SQLElixir" 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/sqlelixir?hl=en.
> 
> 


-- 
You received this message because you are subscribed to the Google Groups 
"SQLElixir" 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/sqlelixir?hl=en.

Reply via email to