Bonjour à tous,

Je débute sur le développement python, et pour le moment, cela se passe pas trop mal.
Cependant, je tombe face à un os dont je n'arrive pas à comprendre (l'autoformation a ses limites...)

Je suis en train de développer une petite application web avec Django. J'ai une classe Personne qui est lié à une classe Coordonnées en relation OneToOnoeField

extrait de mon models.py:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
class Personne(models.Model):
    nom = models.CharField(max_length=100)
    prenom = models.CharField(max_length=100, blank=True, null=True)
    coordonnees = models.OneToOneField(Coordonnees, on_delete=models.CASCADE, blank=True, null=True)
 
class Coordonnees(models.Model):
    telephone = models.CharField(max_length=15, blank=True, null=True)
    mobile = models.CharField(max_length=15, blank=True, null=True)
L'enregistrement des mes objets fonctionnent bien en base. La récupération également. Cependant, lorsque je veux supprimer une Personne, j'aimerai que les Coordonnées associées soient également supprimées. Or, cela ne fonctionne pas. Par contre, si je supprime les coordonnées de la personne, cela supprime ma personne dans la base.

Extrait de mon views.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
#@login_required(login_url='login')
def personne_delete(request, id):
    personne = get_object_or_404(Personne, pk=id)
    try:
        # Cela supprime bien mes coordonnées et ma personne
        personne.coordonnees.delete()
        # Cela supprime uniquement ma personne, mais pas mes coordonnées associées
        personne.delete()
    except IntegrityError:
        personne.onArchive = True
        personne.save()
    return redirect('MyContacts:mycontacts_personnes_list')
Je pense que j'ai pas compris un truc, dans le raisonnement python.
Y'a-t-il quelqu'un pour éclairer ma faible lanterne?

En vous remerciant par avance.