3 votes

Comment supprimer une image ImageField dans un modèle Django

J'ai un Profile comme ceci :

class Profile(models.Model):
    photo = models.ImageField(upload_to="img/users/", blank=True)

Je souhaite que mes utilisateurs puissent supprimer leur photo de profil afin qu'il n'y ait aucune image dans photo c'est-à-dire en blanc.

J'ai essayé Profile.objects.get(id=1).photo.delete(save=False) ce qui a supprimé l'image mais l'url était toujours là et j'obtenais un 404. Comment puis-je effacer l'image et l'url ?

EDIT : Dans mon modèle, je suis comme :

{% if profile.photo %}
    <img src="{{ MEDIA_URL }}{{ profile.photo }}" />
{% else %}
    <img src="{{ MEDIA_URL }}img/avatar.jpg" />
{% endif %}

6voto

kia Points 664

Changement Profile.objects.get(id=1).photo.delete(save=False) a Profile.objects.get(id=1).photo.delete(save=True)

https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.fields.files.FieldFile.delete

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X