यदि कॉलम के संयोजन के आधार पर ऐसी कोई वस्तु अद्वितीय है, तो आपको इन्हें समग्र प्राथमिक कुंजी के रूप में चिह्नित करने की आवश्यकता है। primary_key=True
जोड़ें इनमें से प्रत्येक कॉलम के लिए कीवर्ड पैरामीटर, आपकी id
को छोड़ कर कॉलम पूरी तरह से:
class Showing(Base):
__tablename__ = "showings"
time = Column(DateTime, primary_key=True)
link = Column(String)
film_id = Column(Integer, ForeignKey('films.id'), primary_key=True)
cinema_id = Column(Integer, ForeignKey('cinemas.id'), primary_key=True)
इस तरह आपका डेटाबेस इन पंक्तियों को अधिक कुशलता से संभाल सकता है (बढ़ते कॉलम की कोई आवश्यकता नहीं है), और SQLAlchemy अब स्वचालित रूप से जानता है कि Showing
के दो उदाहरण हैं या नहीं एक ही बात हैं।
मैं विश्वास करता हूं फिर आप बस अपना नया Showing
. मर्ज कर सकते हैं सत्र में वापस:
def AddShowings(self, showing_times, cinema, film):
for showing_time in showing_times:
self.session.merge(
Showing(time=showing_time[0], link=showing_time[1],
film=film, cinema=cinema)
)