>From reading through the Elixir and SQLAlchemy documentation, it seems
that, by default, a foreign key in a table should be set to null once
the row in the other table is deleted. However, I can't seem to write
code that demonstrates this behavior. Basically, I am creating two
"Persons", a mother and a child. I'm deleting the mother, but the
child seems to be holding on to the reference to his mother. How do I
tell the child his mother is dead? :)
Code:
############################################
from elixir import *
import os.path
class Person(Entity):
belongs_to('mom',of_kind='Person')
has_many('children',of_kind='Person')
has_field('name',Text)
if __name__ == '__main__':
FNAME = 'test.sqlite'
DBFILE = "sqlite:///%s" % FNAME
metadata.bind = DBFILE
metadata.bind.echo = False
if os.path.isfile(FNAME):
os.remove(FNAME)
setup_all(True)
mom = Person(name='Mom')
bobby = Person(name='Bobby')
bobby.mom = mom
session.commit()
print 'Mom ID (according to Bobby), before deleting Mom: %i' %
bobby.mom_id
session.delete(mom)
session.commit()
session.refresh(bobby)
print 'Mom ID (according to Bobby), after deleting Mom: %i' %
bobby.mom_id
############################################
Output:
############################################
Mom ID (according to Bobby), before deleting Mom: 1
Mom ID (according to Bobby), after deleting Mom: 1
############################################
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---