changes
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -3,6 +3,7 @@ from django.dispatch import receiver
|
||||
from django.apps import apps
|
||||
from channels.layers import get_channel_layer
|
||||
from asgiref.sync import async_to_sync
|
||||
from django.db import transaction
|
||||
|
||||
# Import hàm get_serializer đã có
|
||||
from .views import get_serializer
|
||||
@@ -55,14 +56,25 @@ def generic_post_save_handler(sender, instance, created, **kwargs):
|
||||
"""
|
||||
Hàm xử lý chung cho tín hiệu post_save từ BẤT KỲ model nào.
|
||||
"""
|
||||
change_type = "created" if created else "updated"
|
||||
send_model_update(instance, change_type)
|
||||
def send_update_after_commit():
|
||||
change_type = "created" if created else "updated"
|
||||
# Re-fetch the instance to ensure we have the committed data
|
||||
refreshed_instance = sender.objects.get(pk=instance.pk)
|
||||
send_model_update(refreshed_instance, change_type)
|
||||
|
||||
transaction.on_commit(send_update_after_commit)
|
||||
|
||||
def generic_post_delete_handler(sender, instance, **kwargs):
|
||||
"""
|
||||
Hàm xử lý chung cho tín hiệu post_delete từ BẤT KỲ model nào.
|
||||
"""
|
||||
send_model_update(instance, "deleted")
|
||||
# For delete, the action happens immediately, so on_commit is not strictly necessary
|
||||
# unless the delete is part of a larger transaction that could be rolled back.
|
||||
# It's safer to use it anyway.
|
||||
def send_delete_after_commit():
|
||||
send_model_update(instance, "deleted")
|
||||
|
||||
transaction.on_commit(send_delete_after_commit)
|
||||
|
||||
def connect_signals():
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user