Desidero modificare is_active
in Flask-Login in modo che gli utenti non siano sempre attivi.Flask-Login solleva TypeError: l'oggetto 'bool' non è richiamabile quando si prova a sovrascrivere la proprietà is_active
L'impostazione predefinita restituisce sempre True
, ma l'ho modificata per restituire il valore della colonna banned
.
In base ai documenti, is_active
deve essere una proprietà. Tuttavia, il codice Flask Login interno solleva:
TypeError: 'bool' object is not callable
Quando si tenta di utilizzare is_active
.
Come utilizzare correttamente is_active
per disattivare alcuni utenti?
class User(UserMixin, db.Model):
id = db.Column(db.Integer, primary_key=True)
banned = db.Column(db.Boolean, default=False)
@property
def is_active(self):
return self.banned
login_user(user, form.remember_me.data)
if not force and not user.is_active():
TypeError: 'bool' object is not callable
@davidism, ora, dopo l'aggiornamento, ho un problema migliore https://github.com/miguelgrinberg/flasky/issues/1#issuecomment-142647023 lol – anvd
Non sono sicuro di cosa intendi. Se un'applicazione si aspetta Flask-Login <0.3, quindi installa Flask-Login <0.3 e usalo in modo appropriato, fino a quando l'app non viene aggiornata. La mia risposta ha risposto alla tua domanda immediata? – davidism
Questo bug relativo alla protezione avanzata della sessione è già stato segnalato a Flask-Login. Non è correlato alla modifica a 'is_active'. Ma non c'è risposta a "c'è un bug in Flask-Login" eccetto "attendere fino a quando non viene corretto". – davidism