L'édition de profile est cassée
Il y a un problème pour l'édition de profiles : La view ProfileUpdateView récupère le profile de l'user qui fait la requête comme instance au lieu du profile en cours d'édition :
profile_form = ProfileForm(
data=self.request.POST,
instance=self.request.user.profile,
)
ce qui fait que plus loin lorsqu'on veut sauvegarder le modèle, on récupère l'user de la requete et on viole ainsi l'intégrité de la base de donnée en assignant 2 profiles à un user (s'il édite un autre profile que le sien).
user = form.save(commit=False)
profile = profile_form.save(commit=False)
profile.user = user
Etapes pour reproduire le bug :
- Aller sur son profile
- Cliquer sur éditer, ça n'ouvre pas le bon profile (cf issue #28 (closed) ). Si l'issue mentionnée est déjà réglée, modifier l'url en décrémentant l'id.
- Faire une modification non triviale.
- Sauvegarder le profile.
- Se faire insulter par Django :p
Edited by Maxime Bombar