Hello list,
Suppose I have the following simple models :
== models.py ==
from basemodel import BaseModel
from elixir import *
class Person(Entity):
name = Field(String)
city = ManyToOne("City")
class Country(Entity):
"""
"""
using_options(tablename = "countries")
name = Field(String)
cities = OneToMany("City")
class City(Entity):
"""
"""
using_options(tablename = "cities")
name = Field(String)
country = ManyToOne("Country",ondelete="RESTRICT")
Is there a way to have the following behaviour :
from db import DB
from models import *
db = DB()
algeria = Country(name="Algeria")
algiers = City(name="Algiers")
db.flush()
# This will add algiers to algeria.cities
algiers.country = algeria
print algeria.cities
# Should print [<City "Algiers">] with proper __repr__ method.
algiers.remove()
db.flush()
# I wish that algeria.cities to be empty now []
print algeria.cities
# > [] ? is this possible ?
Some people told me about the AssociationProxy extension for salalchemy, but I
don't know if that would fit in my case.
Or is this related to cascade deletes by any chance ? in which case, how should
I define it ?
Any suggestions ?
Here's db.py just in case :
== db.py ==
from elixir import *
class DB:
session = session
def __init__(self,echo=False):
metadata.bind = "postgres://some_url/testdb"
metadata.bind.echo = echo
metadata.echo = True
session.bind = metadata.bind
setup_all()
drop_all()
create_all()
session.commit()
# def drop_all(self):
# drop_all()
# def create_all(self):
# create_all()
# def setup_all(self,create=False):
# setup_all(create)
def commit(self):
session.commit()
def flush(self):
session.flush()
Thanks.
Y.Chaouche
--
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.