{{ get_page_metadata() }}

{% trans %}« back to the blog index{% endtrans %}

{{ _("Login") }}

{%- if form.all_errors %}
{{ form.all_errors[0]|e }}
{%- endif %} {# we use render rather than just calling because we want our own stylish error reporting on this page. Also the JavaScript is declared right after the text fields so that ueber-quick users don't conflict with the javascript. Imagine a user entering his password into the password field and suddenly the page finished loading and the focus is back in the username field and the password is entered there by accident making it visible to everybody #} {% call form.render(action=url_for('account/login')) %}
{{ _("Username") }}
{{ form.user.render() }}
{{ _("Password") }}
{{ form.password.render() }}

{{ form.permanent.render() }}

{%- endcall %}