Использование Flask-Admin + Flask-SQLAlchemy Я определил три модели: User, Apikey, Exchange.Flask-Admin/Flask-SQLAlchemy: установить user_id = current_user для INSERT
Когда идентифицированный пользователь создает новый Apikey через интерфейс веб-администратора Я хотел бы, что user_id на новой строке, которая вставляется в базу данных устанавливается на текущий user_id, вошедшего в систему.
С моим текущая реализация, пользователь может выбрать любого пользователя, которого она любит (что нежелательно).
Это мое определение модели:
class User(db.Model, UserMixin):
id = db.Column(db.Integer, primary_key=True)
first_name = db.Column(db.String(255))
last_name = db.Column(db.String(255))
email = db.Column(db.String(255), unique=True)
password = db.Column(db.String(255))
active = db.Column(db.Boolean())
confirmed_at = db.Column(db.DateTime())
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))
apikeys = db.relationship('Apikey', backref='user')
def __str__(self):
return self.email
class Apikey(db.Model):
id = db.Column(db.Integer, primary_key=True)
exch_user = db.Column(db.String(255))
exch_pass = db.Column(db.String(255))
exch_key = db.Column(db.String(255))
exch_secret = db.Column(db.String(255))
user_id = db.Column(db.Integer, db.ForeignKey('user.id'))
exch_id = db.Column(db.Integer, db.ForeignKey('exchange.id'))
class Exchange(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255))
apikeys = db.relationship('Apikey', backref='exchange')
def __str__(self):
return self.name
Фантастическая, спасибо много. Это хорошо работает. – Unai
@ pjcunningham: Ответ работает хорошо, и не могли бы вы посоветовать, как 'model.user_roles = current_user.roles'. Спасибо, я хочу получить роль текущего пользователя. – Samoth