0
サブスクライバリストからユーザを削除しようとしていますが、サブスクライバ全体が自動的に削除されています。ここでSqlAlchemy Flaskを使用してデータベースから1行を削除しますか?
がある私の機能を購読:
def subscribe(self, user_id):
if not self.is_subscriber(user_id):
db.engine.execute(
subscribers.insert(),
client_id = self.id,
user_id = user_id
)
db.session.commit()
else:
return False
退会機能:そのことによって
def unsubscribe(self, user_id):
if self.is_subscriber(user_id):
db.engine.execute(
subscribers.delete(),
client_id = self.id,
user_id = user_id
)
db.session.commit()
else:
return False
私はそれがその特定のユーザーを削除する必要が退会しようとしましたが、私の状況であれば全体のユーザーは、テーブルから削除され、なぜ、それは誰ですか、ここで問題を解決するのに役立ちますか?
編集:私は、クエリからのclient_idを削除するには、ちょうどUSER_IDを削除しようとした場合
、私はこのエラーを取得:
db.sessionでもUnmappedInstanceError: Class '__builtin__.int' is not mapped
。削除(user_id)コマンド! 。あなたはSQLAlchemyののパワーを活用するために、このの多くを簡素化することができますflask-sqlalchemyを使用している場合
def unsubscriber(self, user_id):
select_subscribers = subscribers.select(
db.and_(
subscribers.c.user_id == user_id,
subscribers.c.client_id == self.id
)
)
rs = db.engine.execute(select_subscribers)
return False if rs.rowcount == 0 else db.session.delete(user_id),
db.session.commit()
ああ、うまくいけば、あなたのアプリで複数のデータベースを使用している場合、エンジンがより効果的なようです。:) – reznov11
私はモデル定義で '__bind_key__'を使用して、複数のデータベースを管理しています:[**複数のデータベースとバインド**](http://flask-sqlalchemy.pocoo.org/2.1/binds/#binds) – abigperson