Je réalise de plus en plus que je suis toujours un Django noob, je n'arrive pas à comprendre ce qui se passe avec mon modèle de données et pourquoi il ne fait pas de cascade de suppressions. Voici mon modèle.Django non en cas de suppression
class message(models.Model):
msg_text = models.CharField(max_length = 9900)
date_time = models.DateTimeField()
is_read = models.BooleanField(default=False)
class thread(models.Model):
message = models.ForeignKey(message)
subject = models.CharField(max_length=160)
from_user = models.ForeignKey(User, related_name = 'from_user')
to_user = models.ForeignKey(User, related_name = 'to_user')
thread_id = models.CharField(max_length = 36)
def __unicode__(self):
return self.subject
Et voici ma fonction de suppression
def delete_message(request, thread_id):
t = thread.objects.get(id=thread_id)
thread.objects.filter(thread_id = t.thread_id).delete()
return HttpResponseRedirect(reverse("inbox.views.index"))
Ainsi, chaque fil a des messages qui lui sont attachés, et tous les fils qui contiennent des messages connexes (c.-à-réponses) sont tous liés avec un identifiant de fil est une chaîne générée aléatoirement. Ainsi, lorsque je supprime, j'obtiens l'identifiant de thread initial (id généré automatiquement par django), puis je l'utilise pour saisir l'identifiant de thread unique et supprimer toutes les entrées qui contiennent cet identifiant de thread. Cependant, lorsque je supprime le thread, il n'est pas auto-cascadant et supprimant les objets de message associés. La chose étrange est que cela a fonctionné avant, mais a ensuite cessé de fonctionner, je ne suis pas trop sûr de savoir pourquoi. Des idées?