Как создавать две сторки в разных таблицах с взаимотношением?

Не могу разобраться, как при создании новой строки в таблице, автоматически создавать строку в другой таблице с взаимоотношением? Есть две таблицы: 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. Возможно потому, что он еще не задан, и явно его указывать не имеет смысла. Как лучше поступить? Спасибо!


Ответы (0 шт):