[英]Sqlalchemy complains that foreign key doesn't exist but actually it exists
[英]SQLAlchemy Automatically Create Entry If Doesn't Exist As Foreign Key
我有大量的.create()
調用依賴於另一個表( Users
)中的ForeignKey
。 但是,在代碼中我實際上沒有創建用戶的意義。
有沒有一種方法可以在SQLAlchemy的另一個表上為每個外鍵創建一個Users
條目?
例如:
class Rr(db.Model):
__tablename__ = 'rr'
id = db.Column(db.Integer, primary_key=True)
submitter = db.Column(db.String(50), db.ForeignKey('user.username'))
class User(db.Model):
__tablename__ = 'user'
username = db.Column(db.String, primary_key=True)
因此,如果我調用Rr(id, submitter=John)
,有沒有辦法在用戶表中創建一個John
條目(如果尚不存在)?
我知道我可以圍繞.create()
方法創建一個包裝器,以便它檢查submitter
並創建一個包裝器.create()
如果不存在),但這似乎多余,因為存在大量希望自動創建Users
的模型。
我想不出任何符合您要求的orm或sql實現,但是可以有效地完成此SO答案中描述的目標: SQLAlchemy是否具有與Django的get_or_create等效的功能?
基本上是從數據庫中獲取用戶(如果存在的話),如果它沒有創建的話。
這種方法的唯一缺點是,您需要執行2個查詢而不是一個查詢,但我認為沒有一種方法可以完成您在一個查詢中查找的內容
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.