tgoop.com/djangolearn_ir/645
Create:
Last Update:
Last Update:
کامنت @Sepehr_e
سلام و درود. من برای این یه راه حلی دیدم از ریپو یکی از دوستان بنظر اومد مربوطه
کاری که کردن اومدن و از models.CASCADE استفاده کردن و یه SOFT_CASCADE نوشتن که همه مدلای مربوطه رو سافت دلیت میکنه
from django.db import connections
from django.utils import timezone
from collections import defaultdict
def SOFT_CASCADE(collector, field, sub_objs, using):
collector.data = defaultdict(set)
collector.collect(
sub_objs,
source=field.remote_field.model,
source_attr=field.name,
nullable=field.null,
fail_on_restricted=False,
)
collector.data = defaultdict(set)
for item in sub_objs:
item.is_deleted = True
item.delete_date = timezone.now()
item.save()
if field.null and not connections[using].features.can_defer_constraint_checks:
collector.add_field_update(field, None, sub_objs)
https://github.com/mejomba/django_shop_m89_final/blob/main/core/models_on_delete.py
BY جنگولرن
Share with your friend now:
tgoop.com/djangolearn_ir/645