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