Me estoy dando cuenta cada vez más de que todavía soy un novato de Django, no puedo entender lo que está sucediendo con mi modelo de datos y por qué no se elimina en cascada. Aquí está mi modelo.Django no en cascada en eliminar
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
Y entonces aquí es mi función de eliminación
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"))
Así que cada hilo tiene mensajes que se le atribuye, y todos los hilos que contienen mensajes relacionados (es decir, respuestas) están todos relacionados con un ID de hilo que es una cadena generada aleatoriamente Así que cuando lo borro, obtengo el id. Del subproceso inicial (Id. Autogenerado de django) y luego lo uso para obtener el Id. De subproceso único y eliminar todas las entradas que contienen ese Id. De subproceso. Sin embargo, cuando elimino el hilo, no es una cascada automática y elimina los objetos de mensaje relacionados.
Lo raro es que funcionó antes, pero luego dejó de funcionar, no estoy muy seguro de por qué. Alguna idea?