'Problems with Django Avatars
I have a problem in my django app and when I edit a user my avatar photo is deleted and returns to the default one, I think the problem is in the views because it works correctly if I load the values from the django admin, If you could help me, I would appreciate it very much. This is the code:
Views:
@login_required
def editar_user(request):
mensaje = ""
if request.method == "POST":
extension_logued_user, _ = Avatar.objects.get_or_create(user=request.user)
FormularioUser = NuestraEdicionUser(request.POST, request.FILES)
if FormularioUser.is_valid():
logued_user = request.user #intancia del Usuario
logued_user.email = FormularioUser.cleaned_data['email']
logued_user.first_name = FormularioUser.cleaned_data['first_name']
logued_user.last_name = FormularioUser.cleaned_data['last_name']
extension_logued_user.imagen = FormularioUser.cleaned_data['imagen']
extension_logued_user.link = FormularioUser.cleaned_data['link']
extension_logued_user.more_info = FormularioUser.cleaned_data['more_info']
if FormularioUser.cleaned_data['password1'] != '' and `FormularioUser.cleaned_data['password1'] == FormularioUser.cleaned_data['password2']:`
logued_user.set_password(FormularioUser.cleaned_data.get("password1"))
else:
mensaje = ""
if extension_logued_user.imagen is None:
pass
logued_user.save()
extension_logued_user.save()
return render(request, "index/index.html", {"mensaje":mensaje})
else:
extension_logued_user, _ = Avatar.objects.get_or_create(user=request.user)
return render(request, "EditUser.html",
{"FormularioUser":FormularioUser,"mensaje":mensaje})
extension_logued_user, _ = Avatar.objects.get_or_create(user=request.user)
FormularioUser = NuestraEdicionUser(
initial={
'first_name': request.user.first_name,
'last_name': request.user.last_name,
'email': request.user.email,
'imagen': extension_logued_user.imagen,
'link': extension_logued_user.link,
'more_info': extension_logued_user.more_info,
}
)
return render(request, "EditUser.html", {"FormularioUser": FormularioUser, "mensaje":mensaje})
Template:
{% extends 'index/index.html' %}
{% load static %}
{% block Encabezado %}
<h1>Tu cuenta</h1>
{% endblock Encabezado %}
{% block PruebaTemplate %}
{% if msj %}
{{msj}}
{% endif %}
{% if request.user.avatar.imagen.url is not None%}
<img src="{{request.user.avatar.imagen.url}}" alt="imagen de perfil" class="rounded-circle rounded mx-auto d-block" height="150" width="150"> <br>
{% else %}
<img src="{% static 'assets\img\fondo.png' %}" alt="imagen de perfil" class="rounded-circle rounded mx-auto d-block" height="150" width="150"> <br>
{% endif %}
<table>
<h1 class="text-center">{{request.user.first_name}} {{request.user.last_name}}</h1> <br>
<p> Email: {{request.user.email}}</p>
<p> Bio: {{request.user.avatar.more_info}}</p>
<a href="{{request.user.avatar.link}}">Pagina Web</a> <br><br>
<a href={% url 'EditarPerfil' %}>Editar Perfil</a>
</table>
{% endblock PruebaTemplate %}
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
