{% extends "django_fundamentals/layouts/settings.html" %} {% comment %} PROFILE TAB — PROFILE PICTURE, USERNAME AND REAL NAME. Email is not editable here on purpose: allauth owns email addresses (multiple addresses, primary selection, re-verification) on its own tab. {% endcomment %} {% block head_title %}Profile · {{ block.super }}{% endblock %} {% block content %}

Profile

How you appear across {{ df_site_name }}.

{% csrf_token %} {% if form.non_field_errors %} {% include "django_fundamentals/atoms/alert.html" with level="error" body=form.non_field_errors %} {% endif %}

Profile picture

{% include "django_fundamentals/molecules/avatar.html" with user=request.user size="h-20 w-20" text="text-2xl" %} {# THE NATIVE FILE INPUT IS sr-only (SEE ProfileForm.Meta.widgets); #} {# THIS LABEL IS THE VISIBLE TRIGGER AND ALPINE ECHOES THE CHOSEN #} {# FILENAME, WHICH THE HIDDEN INPUT CAN NO LONGER SHOW. #}
{{ form.avatar }}

{% if form.avatar.help_text %}

{{ form.avatar.help_text }}

{% endif %} {% if form.avatar.errors %} {% endif %}

Details

{% include "django_fundamentals/molecules/form_field.html" with field=form.username %} {% include "django_fundamentals/molecules/form_field.html" with field=form.first_name %} {% include "django_fundamentals/molecules/form_field.html" with field=form.last_name %}
{% include "django_fundamentals/atoms/button.html" with label="Save changes" %}
{% endblock %}