Estoy creando un sistema de comentarios personalizado que puede adjuntar comentarios a cualquier modelo utilizando los tipos de contenido GenericForeignKey.¿Por qué no mi cascada GenericForeignKey al eliminar?
class Comment(models.Model):
body = models.TextField(verbose_name='Comment')
user = models.ForeignKey(User)
parent = models.ForeignKey('self', null=True, blank=True)
created = models.DateTimeField(auto_now_add=True)
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField()
content_object = generic.GenericForeignKey('content_type', 'object_id')
Tengo entendido que cuando el modelo se adjunta el comentario se elimina, la eliminación debe conectar en cascada y quitar el comentario también.
Desafortunadamente, esto no está sucediendo y estoy perplejo. ¿Hay alguna razón común por la que cambiaría el comportamiento de eliminación predeterminado?
Gracias, leí mal esa parte de la documentación y asumí que significaba que se conectaría en cascada de manera predeterminada. – Soviut
Muchas gracias, dónde estaban mis ojos ... – valex
Creo que los documentos de django deberían indicarlo al revés. "GenericForeignKey NO elimina en cascada, sino que establece el valor en nulo. Se aplica en cascada SÓLO si se utiliza GenericRelation en el modelo relacionado". Esto es necesario porque obtenemos la eliminación en cascada de forma predeterminada en las claves externas normales. –