2015-03-14 6 views
6

दिखाती है मेरे पास एक इकाई में दो विदेशी कुंजी हैं जो किसी अन्य इकाई को संदर्भित करती हैं। यह इस प्रकार सेफ्लास्क विदेशी_की अभी भी AmbiguousForeignKeysError

class Review(db.Model): 
     __tablename__ = 'Review' 
     id = db.Column(db.Integer, primary_key = True) 
     user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False) 
     business_user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False) 
     user = db.relationship('User', foreign_keys=[user_id]) 
     business_user = db.relationship('User', foreign_keys=[business_user_id]) 

और

class User(db.Model): 
    __tablename__ = 'User' 
    id = db.Column(db.Integer, primary_key = True) 
    reviews = db.relationship('Review', backref='user', 
          lazy='dynamic') 

लग रहा है हालांकि, यह अभी भी मुझे कह

कई विदेशी कुंजी तालिकाओं जोड़ने पथ देखते हैं एक त्रुटि से पता चलता है। 'foreign_keys' तर्क निर्दिष्ट करें, उन स्तंभों की एक सूची है जो के रूप में माता पिता तालिका

के लिए एक विदेशी कुंजी संदर्भ युक्त ऊपर वैकल्पिक हल मैं क्या कुछ अन्य पदों से मिलता है गिनती की जानी चाहिए प्रदान करते हैं। मैंने कई बार चेक किया है और बदल दिया है, और अभी भी कोई भाग्य नहीं है। मुझे आश्चर्य है कि यह पहले से ही सही है या मुझे याद आती है। मदद की ज़रूरत है

+0

क्या आपको कभी इसका समाधान मिला? मैंने कुछ जवाब देने का प्रयास करने में कुछ समय बिताया लेकिन काम करने में असमर्थ था। –

+0

मैंने उत्तर पोस्ट किया –

उत्तर

6

अंत में, मुझे पता लगाने की कोशिश करने के बाद कामकाज मिल गया। मेरे मामले में, मुझे समीक्षा कक्षा में backref डालना नहीं है। इसके बजाय, मुझे User कक्षा में उपयोगकर्ता backref डालना चाहिए। तो, यह

class Review(db.Model): 
    __tablename__ = 'Review' 
    id = db.Column(db.Integer, primary_key = True) 
    user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False) 
    business_user_id = db.Column(db.Integer, db.ForeignKey('User.id'), nullable=False) 
    user = relationship('User', backref='user_reviews', foreign_keys=user_id) 
    business_user = relationship("User", backref='business_user_reviews', foreign_keys=[business_user_id]) 

class User(db.Model): 
    __tablename__ = 'User' 
    id = db.Column(db.Integer, primary_key = True) 

जैसा दिखता है, यहां दोनों प्रकार के उपयोगकर्ता की कई समीक्षाएं हैं। तब, जब मैं दोनों User की समीक्षा की सूची प्राप्त करने की जरूरत है, मैं क्या कर सकते हैं

user = User.query.get(id) 
user_reviews = User.user_reviews 
business_user_reviews = user.business_user_reviews 

है और मैं अब इस त्रुटि के पार चला रहा हूँ।

संबंधित मुद्दे