автоматически менять поля в edit.html.
Допустим я хочу пересохранять поле confirmed_at, которое вставляется только при создании, но потом отображается из базы.
Что где сделать, чтобы при открытии шаблона туда автоматом вставало текущее время?
class User_(db.Model, UserMixin):
def dt_tm(self):
return datetime.datetime.now()
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(), default=dt_tm)
roles = db.relationship('Role', secondary=roles_users,
backref=db.backref('users', lazy='dynamic'))
def __str__(self):
return self.email
class UsersView(sqla.ModelView):
column_exclude_list = ('password')
edit_template = 'my_edit.html'
def is_accessible(self):
if not current_user.is_active or not current_user.is_authenticated:
return False
if not current_user.has_role('superuser'):
return False
return True
def _handle_view(self, name, **kwargs):
"""
Override builtin _handle_view in order to redirect users when a view is not accessible.
"""
if not self.is_accessible():
if current_user.is_authenticated:
# permission denied
abort(403)
else:
# login
return redirect(url_for('security.login', next=request.url))
Передать его в контекст
Если хочешь, чтобы при сохранении обновлялось, поставь @sqlalchemy.event.listens_for(Model, "before_update")
Обсуждают сегодня