Создание шаблонов profile_detail.html и profile_edit.html
Для этого создадим в папке templates папку accounts, а в ней два файла profile_detail.html и profile_edit.html.
Заполняем profile_detail.html следующим HTML кодом:
{% extends 'main.html' %}
{% block content %}
<div class="card border-0">
<div class="card-body">
<div class="row">
<div class="col-md-3">
<figure>
<img src="{{ profile.avatar.url }}" class="img-fluid rounded-0" alt="{{ profile }}">
</figure>
</div>
<div class="col-md-9">
<h5 class="card-title">
{{ profile }}
</h5>
<div class="card-text">
<ul>
<li>Никнейм: {{ profile.user.username }}</li>
{% if profile.user.get_full_name %} <li>Имя и фамилия: {{ profile.user.get_full_name }}</li> {% endif %}
<li>Заходил: {{ profile.user.last_login }}</li>
<li>Дата рождения: {{ profile.birth_date }}</li>
<li>О себе: {{ profile.bio }}</li>
</ul>
{% if request.user == profile.user %} <a href="{% url 'profile_edit' %}" class="btn btn-sm btn-primary">Редактировать профиль</a> {% endif %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
И шаблон для редактирования профиля:
{% extends 'main.html' %}
{% block content %}
<div class="card mb-3 border-0 nth-shadow">
<div class="card-body">
<div class="card-title nth-card-title">
<h4>Изменение профиля</h4>
</div>
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
{{ user_form.as_p }}
{{ form.as_p }}
<div class="d-grid gap-2 d-md-block mt-2">
<button type="submit" class="btn btn-dark">Подтвердить изменение профиля</button>
</div>
</form>
</div>
</div>
{% endblock %}
Осталось лишь проверить проделанную работу. Переходим на страницу своего пользователя, в моем случае это выглядит следующим образом: http://127.0.0.1:8000/user/admin/
Нажмём кнопку Редактировать профиль. Давайте изменим аватарку пользователя, загрузим свою произвольную картинку, а также добавим имя и фамилию:
И подтвердим изменение профиля.
Мы видим что наш аватар, а также имя и фамилия обновились. На этом работа с профилем закончена, в следующем разделе мы добавим функциональность в виде добавления, редактирования и удаления постов пользователями.