2010-01-23 6 views
0

J'ai un modèle qui est quelque chose comme ceci:Django: ForeignKey() ou ManyToMany() dans ce cas? Ou autre?

class ReturnAuthorization(models.Model): 
    custom_id = models.CharField(max_length=40) 

class RMAAPILog(models.Model): 
    return_authorization = models.ForeignKey(ReturnAuthorization) 

Si je devais supprimer () une autorisation de retour, je ne peux pas l'avoir supprimer tous les RMAAPILog()s qui s'y rapporte. Dans ce cas, ils sont supprimés. Il peut y avoir plusieurs tentatives pour obtenir un RMA à partir de l'API externe (autant de RMAAPILog() s par ReturnAuthorization(), mais il ne peut y avoir qu'un seul ReturnAuthorization() pour chaque RMAAPILog() bien sûr parce que c'est un journal d'une tentative d'autoriser un ReturnAuthorization() spécifique. Quelle serait la meilleure façon de le faire, ou ce que je pense de tout faux

Répondre

1
+0

Oops, ça ne va pas ce poste est un gars ayant le problème en face il a un modèle dont il a besoin en cascade, mais ça ne marche pas, j'ai besoin de l'effet inverse, j'ai besoin de supprimer le parent sans que l'enfant soit supprimé – orokusaki

+0

Désolé, je ne pourrais pas dire si cela correspond ou pas. une des réponses s'applique bien? "Django's Foreig Le gestionnaire nKey a une méthode appelée clear() qui supprime tous les objets de l'ensemble d'objets associés. Appelez cela d'abord, puis la suppression de votre objet devrait fonctionner. "- http://stackoverflow.com/questions/1006135/how-do-i-create-a-django-model-with-foreignkeys-which-does-not-cascade -deletes-to/1007778 # 1007778 – Tom

+0

Il y a un correctif dans http://code.djangoproject.com/ticket/7539 pour ajouter le support pour le contrôle du comportement ON DELETE dans le modèle – Tom