在使用以下类定义简单的1-n关系后:
class User(db.Model):
__tablename__ = 'user'
UserID = db.Column(db.Integer, primary_key=True)
Name = db.Column(db.String(80), unique=True)
emails = db.relationship('email')
def __init__(self, username):
self.Name = username
class Email(db.Model):
__tablename__ = 'email'
EmailID = db.Column(db.Integer, primary_key=True)
Email = db.Column(db.String(80), unique=True)
User = db.Column(db.Integer,db.ForeignKey('user.UserID'))
def __init__(self, mail):
self.Email = mail
我想创建一个用户并添加一些邮件,然后使用:
将其保存到数据库username = "serkan1"
newuser = User(username)
newuser.emails[Email(Email='serkan@ismygirl.com'),Email(Email = 'eddfsdfq@ff.com')]
db.session.add(product)
db.session.commit()
return "ok"
但我得到错误:
ArgumentError: relationship 'emails' expects a class or a mapper argument (received: <class 'sqlalchemy.sql.schema.Table'>)
我如何简单地创建一个用户,添加一些带有1-n架构的电子邮件并将其保存到数据库?
答案 0 :(得分:4)
尝试更改此行:
emails = db.relationship('email')
为:
emails = db.relationship('Email')
这将引用您的Email
类而不是您的email
表,如错误消息所述。