From 2ebc8bf9307c05d09ec45c02eb4ec6a139c0a120 Mon Sep 17 00:00:00 2001 From: CurtisMIT <41308927+CurtisMIT@users.noreply.github.com> Date: Sat, 13 Mar 2021 14:39:50 -0500 Subject: [PATCH] updated contact contact_types relationship (#142) * updated contact contact_types relationship * renaming --- backend/app/models.py | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/backend/app/models.py b/backend/app/models.py index 65be7d4..3f6cd78 100644 --- a/backend/app/models.py +++ b/backend/app/models.py @@ -52,7 +52,7 @@ def __repr__(self): db.Column( "contact_id", UUID(as_uuid=True), - db.ForeignKey("contact.id"), + db.ForeignKey("contacts.id"), primary_key=True, default=uuid.uuid4, ), @@ -113,8 +113,28 @@ def __repr__(self): return "" % self.id +belongs_to = db.Table( + "belongs_to", + db.Column( + "contact_id", + UUID(as_uuid=True), + db.ForeignKey("contacts.id"), + primary_key=True, + default=uuid.uuid4, + ), + db.Column( + "contact_type_id", + UUID(as_uuid=True), + db.ForeignKey("contact_types.id"), + primary_key=True, + default=uuid.uuid4, + ), +) + + # Contact Model class Contact(db.Model): + __tablename__ = "contacts" id = db.Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4()) name = db.Column(db.String(256), nullable=False) email = db.Column(db.String(256), nullable=False) @@ -124,8 +144,11 @@ class Contact(db.Model): organization = db.Column(db.String(256), nullable=False) neighbourhood = db.Column(db.String(256)) # many to one realtionship with contact_type - contact_type = db.Column( - UUID(as_uuid=True), db.ForeignKey("contact_types.id"), nullable=False + contact_types = db.relationship( + "ContactType", + secondary=belongs_to, + lazy="subquery", + backref=db.backref("contacts", lazy=True), ) @property @@ -158,7 +181,6 @@ class ContactType(db.Model): hex_colour = db.Column(db.String(8)) type = db.Column(db.String(64)) description = db.Column(db.String(512)) - contacts = db.relationship("Contact", backref="contact_types", lazy=True) @property def serialize(self):