python - flask-security login via username and not email -


i wanted have field in user model through user logs in username instead of email

i defined:
app.config['security_user_identity_attributes'] = 'username'

but i'm still getting:

user_datastore.add_role_to_user(name, 'mgmt')       file "/users/boazin/sentinal/sentinel-cloud/.env/lib/python2.7/site-packages/flask_security/datastore.py", line 105, in add_role_to_user         user, role = self._prepare_role_modify_args(user, role)       file "/users/boazin/sentinal/sentinel-cloud/.env/lib/python2.7/site-packages/flask_security/datastore.py", line 72, in _prepare_role_modify_args         user = self.find_user(email=user)       file "/users/boazin/sentinal/sentinel-cloud/.env/lib/python2.7/site-packages/flask_security/datastore.py", line 203, in find_user         return self.user_model.query.filter_by(**kwargs).first()       file "/users/boazin/sentinal/sentinel-cloud/.env/lib/python2.7/site-packages/sqlalchemy/orm/query.py", line 1333, in filter_by         key, value in kwargs.items()]       file "/users/boazin/sentinal/sentinel-cloud/.env/lib/python2.7/site-packages/sqlalchemy/orm/base.py", line 383, in _entity_descriptor         (description, key)     invalidrequesterror: entity '<class 'flask_app.models.user'>' has no property 'email' 

it seems email hardcoded flask-security...

can change it?

edit: user model (as requested in comment):

class user(db.model, usermixin):     id = db.column(db.integer, primary_key=true)     username = db.column(db.string(255), unique=true, index=true)     password = db.column(db.string(255))     token = db.column(db.string(255), unique=true, index=true)     active = db.column(db.boolean())     confirmed_at = db.column(db.datetime())     roles = db.relationship('role', secondary=roles_users,                             backref=db.backref('users', lazy='dynamic')) 

from https://pythonhosted.org/flask-security/models.html

fields id, email, password, active essential.so add

email = db.column(db.string(255), unique=true) 

just add custom username field along this.


Comments

Popular posts from this blog

c# - Validate object ID from GET to POST -

node.js - Custom Model Validator SailsJS -

php - Find a regex to take part of Email -