Я все больше осознаю, что я все еще Django noob, я не могу понять, что происходит с моей моделью данных и почему это не каскадное удаление. Вот моя модель.Django не каскадирование при удалении
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
И тогда вот моя функция удаления
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"))
Таким образом, каждый поток имеет сообщения, присоединенные к нему, и все потоки, которые содержат сообщения, относящиеся к (т.е. ответов) все связанные с ID потока, который представляет собой случайно сгенерированную строку. Так что, когда я удаляю, я получаю начальный идентификатор потока (django auto-generated id), а затем использую его для захвата уникального идентификатора потока и удаления всех записей, содержащих этот идентификатор потока. Однако, когда я удаляю поток, он не автокаскадирует и не удаляет связанные объекты сообщений.
Странно то, что он работал раньше, но затем перестал работать, я не слишком уверен, почему. Любые идеи?