Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

231
Views
Flask-Login genera TypeError: el objeto 'int' no se puede llamar

Acabo de escribir una demostración de inicio de sesión de matraz.

 @app.route('/reg/', methods=['GET', 'POST']) def reg(): username = request.form.get('username').strip() password = request.form.get('password').strip() if (username == '' or password == ''): return redirect_with_msg('/regloginpage/', u'用户名或密码不能为空', category='reglogin') user = User.query.filter_by(username=username).first() if (user != None): return redirect_with_msg('/regloginpage/', u'用户名已存在', category='reglogin') salt = '.'.join(random.sample('0123456789abcdfeghijklmnABCDEFG', 10)) m = hashlib.md5() str1 = (password + salt).encode('utf-8') m.update(str1) password = m.hexdigest() user = User(username, password, salt) db.session.add(user) db.session.commit() login_user(user) return redirect('/')

Y Traceback así:

 TypeError: 'int' object is not callable File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request return self.view_functions[rule.endpoint](**req.view_args) File "/Users/apple/PycharmProjects/pinstagram/pinstagram/views.py", line 94, in login login_user(user) File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/flask_login/utils.py", line 140, in login_user user_id = getattr(user, current_app.login_manager.id_attribute)() TypeError: 'int' object is not callable

Me enfada, ¿alguien me puede salvar?

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Acabo de encontrarme con este mismo problema con el inicio de sesión de matraz y llegué a esta pregunta. Si bien la respuesta de @Sweater-Baron sugiere el problema, aquí está la solución directa en su clase de User , ya que no tiene sentido editar Flask-Login . El método get_id() no debe declararse como una propiedad:

 @property def get_id(self): return self.uid

a diferencia is_authenticated() , is_active() y is_anonymous() .

 def get_id(self): return self.uid

De la documentación de Flask-Login :

obtener_id()

Este método debe devolver un código Unicode que identifique de forma única a este usuario y se puede usar para cargar al usuario desde la devolución de llamada de user_loader.

[el subrayado es mío]

over 4 years ago · Santiago Trujillo Report

0

Leer el mensaje de error muestra que el error está ocurriendo en la línea 140 de utils.py. Esto es probablemente porque tienes

 user_id = getattr(user, current_app.login_manager.id_attribute)()

El () al final hace que su programa intente llamar al valor de retorno de getattr como una función, cuando es un int. Retire el () y debería funcionar.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!