このチュートリアルに従って、アクティビティ フィードを実装しようとしています。
対応するオブジェクト、つまりコメント自体が削除されたときに、アクティビティ (つまり、コメントが追加された) を削除したいと考えています。これはカスケードしていないようです。
GenericRelation を追加せずにこれを達成する方法はありますか? postdelete シグナルを使用して、対応するアクティビティを削除することができます。それが最善の方法ですか?
このチュートリアルに従って、アクティビティ フィードを実装しようとしています。
対応するオブジェクト、つまりコメント自体が削除されたときに、アクティビティ (つまり、コメントが追加された) を削除したいと考えています。これはカスケードしていないようです。
GenericRelation を追加せずにこれを達成する方法はありますか? postdelete シグナルを使用して、対応するアクティビティを削除することができます。それが最善の方法ですか?
はい、できますが、インスタンス pk にアクセスできるため、 pre_delete シグナルを使用する方がよいかもしれません。
from django.contrib.contenttypes.models import ContentType
from django.db.models.signals import pre_delete
from django.dispatch import receiver
from yourapp.models import Comment, Activity
@receiver(pre_delete, sender=Comment)
def pre_delete_receiver(sender, instance,**kwargs):
# code that delete the related objects
# As you don't have generic relation you should manually
# find related actitities
ctype = ContentType.objects.get_for_model(instance)
Activity.objects.filter(content_type=ctype, object_id=instance.pk).delete()