Advertisement
Guest User

Models

a guest
Feb 3rd, 2016
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.24 KB | None | 0 0
  1. from flask_sqlalchemy import SQLAlchemy
  2. from sqlalchemy import ForeignKey
  3. from sqlalchemy.orm import relationship
  4. from datetime import datetime, timedelta
  5. from app import db, bcrypt
  6. import uuid
  7.  
  8. class User(db.Model):
  9.     __tablename__ = 'user'
  10.     id = db.Column(db.Integer, primary_key=True)
  11.     username = db.Column(db.String(80), unique=True)
  12.     email = db.Column(db.String(120), unique=True)
  13.     password = db.Column(db.String(255))
  14.     admin = db.Column(db.Boolean(), default=False)
  15.     articles = db.relationship('Article', backref='user', lazy='dynamic')
  16.     messages = db.relationship('Message', backref='user', lazy='dynamic')
  17.     timestamp = db.Column(db.DateTime)
  18.     changepasswordrequest = db.relationship('ChangePasswordRequest', uselist=False, backref='user')
  19.     emailverification = db.relationship('EmailVerification', uselist=False, backref='user')
  20.  
  21.     def __init__(self, username, email, password, timestamp=None):
  22.         self.username = username
  23.         self.email = email
  24.         self.password = bcrypt.generate_password_hash(password)
  25.         self.timestamp = datetime.utcnow()
  26.        
  27.     def __repr__(self):
  28.         return '<User %r>' % self.username
  29.  
  30. class Message(db.Model):
  31.     __tablename__ = 'message'
  32.     id = db.Column(db.Integer, primary_key=True)
  33.     title = db.Column(db.String(50))
  34.     body = db.Column(db.String())
  35.    
  36.     to_id = db.Column(db.Integer, ForeignKey("user.id"))
  37.     from_id = db.Column(db.Integer, ForeignKey("user.id"))
  38.  
  39.     from_user = db.relationship("User", foreign_keys=[to_id])
  40.     to_user = db.relationship("User", foreign_keys=[from_id])
  41.    
  42.     def __init__(self, title, body, to_user, from_user):
  43.         self.title = title
  44.         self.body = body
  45.         self.to_user = to_user
  46.         self.from_user = from_user
  47.        
  48.     def __repr__(self):
  49.         return '<Message %r>' % self.id
  50.  
  51. # My error is
  52. # sqlalchemy.exc.AmbiguousForeignKeysError
  53. 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