contract entity:
from api.extensions import db
from sqlalchemy.sql import expression

contracts_users = db.Table("contracts_users",
                           db.Column("contract_id"
, db.Integer, db.ForeignKey(
                               "contracts.id"), primary_key=True),
                           db.Column("user_uin", db.Integer, db.ForeignKey(
                               "users.uin"), primary_key=True)
                           )

contracts_vendors = db.Table("contracts_vendors",
                             db.Column("contract_id"
, db.Integer, db.ForeignKey(
                                 "contracts.id"), primary_key=True),
                             db.Column("vendor_id"
, db.Integer, db.ForeignKey(
                                 "vendors.id"), primary_key=True)
                             )
contracts_permissions = db.Table("styles_permissions_contract",
                                 db.Column("permission_id"
, db.Integer, db.ForeignKey(
                                     "styles_permissions.id"), primary_key=
True),
                                 db.Column("contract_id"
, db.Integer, db.ForeignKey(
                                     "contracts.id"), primary_key=True)
                                 )


class Contract(db.Model):

    __tablename__ = 'contracts'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=True, nullable=False)
    image_url = db.Column(db.String(255), nullable=False,
                          server_default=
"/assets/img/alvest/card-default.png")
    alvest_enabled = db.Column(
        db.Boolean, nullable=False, server_default=expression.false())

    users = db.relationship('User', secondary=contracts_users,
                            backref=db.backref('contracts', lazy=True))
    vendors = db.relationship('Vendor', secondary=contracts_vendors,
                              backref=db.backref('contracts', lazy=True))
    permissions = db.relationship('Permission', secondary
=contracts_permissions,
                                  backref=db.backref('contracts', lazy=True
))

    def __repr__(self):
        return f"(name: {self.name}, image_url: {self.image_url}," \
            f"alvest_enabled: {self.alvest_enabled}"


permission entity:
from api.extensions import db
from sqlalchemy.sql import expression


class Permission(db.Model):
    __tablename__ = 'styles_permissions'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=True, nullable=False)
    description = db.Column(db.String(255), unique=True, nullable=False)
    instruction = db.Column(db.String(255), autoincrement=False)
    url = db.Column(db.Integer, autoincrement=False)

    def __repr__(self):
        return f"'id': '{self.id}', 'name': '{self.name}', 'description': '
{self.description}, 'instruction': '{self.instruction}', 'url': '{self.url}
'"


the joining table is within the contractentity...

Thanks for this by the way, much appreciated 


On Thursday, May 28, 2020 at 6:35:34 PM UTC+1, Jonathan Vanasco wrote:
>
> What is the code for PermissionEntity, ContractEntity, and the joining 
> table?
>
> it will look like this 
> https://docs.sqlalchemy.org/en/13/orm/basic_relationships.html#one-to-many
>

-- 
SQLAlchemy - 
The Python SQL Toolkit and Object Relational Mapper

http://www.sqlalchemy.org/

To post example code, please provide an MCVE: Minimal, Complete, and Verifiable 
Example.  See  http://stackoverflow.com/help/mcve for a full description.
--- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/sqlalchemy/3c5b168a-0a46-41bf-b920-3ebccdeab8bc%40googlegroups.com.

Reply via email to