Как создавать две сторки в разных таблицах с взаимотношением?
Не могу разобраться, как при создании новой строки в таблице, автоматически создавать строку в другой таблице с взаимоотношением? Есть две таблицы: User и Gift. Задача: при создании нового user сразу создавать gift изначально пустой.
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
nickname = db.Column(db.String(64), unique=True, nullable=False)
gift = db.relationship('Gift', backref='owner', uselist=False)
def __init__(self, *args, **kwargs):
super(User, self).__init__(*args, **kwargs)
self.create_gift()
def create_gift(self):
new = Gift(user_id=self.id)
db.session.add(new)
return new
class Gift(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(32), default="")
user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
Получается так, что при создании user-а, конструктор класса не получает id. Возможно потому, что он еще не задан, и явно его указывать не имеет смысла. Как лучше поступить? Спасибо!