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:
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.
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)
Extrait de mon views.py
Je pense que j'ai pas compris un truc, dans le raisonnement python.
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')
Y'a-t-il quelqu'un pour éclairer ma faible lanterne?
En vous remerciant par avance.
Partager