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