Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask_sqlalchemy import SQLAlchemy
- from sqlalchemy import ForeignKey
- from sqlalchemy.orm import relationship
- from datetime import datetime, timedelta
- from app import db, bcrypt
- import uuid
- class User(db.Model):
- __tablename__ = 'user'
- id = db.Column(db.Integer, primary_key=True)
- username = db.Column(db.String(80), unique=True)
- email = db.Column(db.String(120), unique=True)
- password = db.Column(db.String(255))
- admin = db.Column(db.Boolean(), default=False)
- articles = db.relationship('Article', backref='user', lazy='dynamic')
- messages = db.relationship('Message', backref='user', lazy='dynamic')
- timestamp = db.Column(db.DateTime)
- changepasswordrequest = db.relationship('ChangePasswordRequest', uselist=False, backref='user')
- emailverification = db.relationship('EmailVerification', uselist=False, backref='user')
- def __init__(self, username, email, password, timestamp=None):
- self.username = username
- self.email = email
- self.password = bcrypt.generate_password_hash(password)
- self.timestamp = datetime.utcnow()
- def __repr__(self):
- return '<User %r>' % self.username
- class Message(db.Model):
- __tablename__ = 'message'
- id = db.Column(db.Integer, primary_key=True)
- title = db.Column(db.String(50))
- body = db.Column(db.String())
- to_id = db.Column(db.Integer, ForeignKey("user.id"))
- from_id = db.Column(db.Integer, ForeignKey("user.id"))
- from_user = db.relationship("User", foreign_keys=[to_id])
- to_user = db.relationship("User", foreign_keys=[from_id])
- def __init__(self, title, body, to_user, from_user):
- self.title = title
- self.body = body
- self.to_user = to_user
- self.from_user = from_user
- def __repr__(self):
- return '<Message %r>' % self.id
- # My error is
- # sqlalchemy.exc.AmbiguousForeignKeysError
- AmbiguousForeignKeysError: Could not determine join condition between parent/child tables on relationship User.messages - there are multiple foreign key paths linking the tables. Specify the 'foreign_keys' argument, providing a list of those columns which should be counted as containing a foreign key reference to the parent table.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement