DJANGOLEARN_IR Telegram 589
جنگولرن
پیاده سازی Django Soft Delete از کانال @microfrontend_ir چندی پیش خبری منتشر شد که در توییتر حذف داده‌ها به درستی انجام نمی‌شود. واقعیت این است که در اغلب نرم‌افزارهای مدرن داده‌ها به صورت فیزیکی حذف نمی‌شوند و صرفا برچسپ حذف شده می‌گیرند. در این ویدیو…
مشکل soft delete برای relation ها

اگه این ویدئو رو از کانال @microfrontend_ir دیده باشید. تقریبا همه حالت هارو برای Soft delete هندل کرده.
برای اینکه حذف واقعی اتفاق نیافته، متد delete مدل رو override می کنیم و میگیم جای حذف، رکورد رو آپدیت کن و...

ولی وقتی با اکشن پیشفرض delete ع ادمین، یک یا چند رکورد رو حذف کنیم، حذف واقعی اتفاق می افته.
✔️که Hêmn از default_manager_name استفاده کرد و این مورد هم هندل کرد.
✔️البته داکیومنت جنگو گفته میتونید متد delete_queryset رو override کنید یا اکشن کاستوم خودتون رو بنویسید. (راه های رسیدن به خدا زیاده)

اما اگه ما relation داشته باشیم باید چکار کنیم؟ فرض کنید جدول Person رو داریم و جدول Address کلید خارجی از نوع CASCADE داره. در این صورت با Soft delete رکورد person حذف میشه اما address های متصل بهش حذف نمیشن.
✔️اولین راهکاری که به ذهن من میرسه استفاده از Signals هست.

به نظر شما best practice ع این مورد چیه؟

آپدیت:
💬پاسخ Hêmn به سوالم:
در اصطلاح orm به اینها میگن مدیرت ابجکت های orphan و پیاده سازی های مختلف داره، من ترجیحم استفاده از دسکریپتور خود مدله، مدلهای جنگو برای روابطشون یک ریلیتد منیجر دارن که همه روابطشون رو مدیریت میکنه. یعنی شما با استفاده از این ویژگی میتونم همه مدل های مرتبط رو پیدا کنید و لاجیک مدنظرتونو اعمال کنید. اینم بگم بعضی وقتها بد هم نیست کل منطق سافت دیلیت در سطح دیتابیس اتفاق بیافته
2🔥2



tgoop.com/djangolearn_ir/589
Create:
Last Update:

مشکل soft delete برای relation ها

اگه این ویدئو رو از کانال @microfrontend_ir دیده باشید. تقریبا همه حالت هارو برای Soft delete هندل کرده.
برای اینکه حذف واقعی اتفاق نیافته، متد delete مدل رو override می کنیم و میگیم جای حذف، رکورد رو آپدیت کن و...

ولی وقتی با اکشن پیشفرض delete ع ادمین، یک یا چند رکورد رو حذف کنیم، حذف واقعی اتفاق می افته.
✔️که Hêmn از default_manager_name استفاده کرد و این مورد هم هندل کرد.
✔️البته داکیومنت جنگو گفته میتونید متد delete_queryset رو override کنید یا اکشن کاستوم خودتون رو بنویسید. (راه های رسیدن به خدا زیاده)

اما اگه ما relation داشته باشیم باید چکار کنیم؟ فرض کنید جدول Person رو داریم و جدول Address کلید خارجی از نوع CASCADE داره. در این صورت با Soft delete رکورد person حذف میشه اما address های متصل بهش حذف نمیشن.
✔️اولین راهکاری که به ذهن من میرسه استفاده از Signals هست.

به نظر شما best practice ع این مورد چیه؟

آپدیت:
💬پاسخ Hêmn به سوالم:
در اصطلاح orm به اینها میگن مدیرت ابجکت های orphan و پیاده سازی های مختلف داره، من ترجیحم استفاده از دسکریپتور خود مدله، مدلهای جنگو برای روابطشون یک ریلیتد منیجر دارن که همه روابطشون رو مدیریت میکنه. یعنی شما با استفاده از این ویژگی میتونم همه مدل های مرتبط رو پیدا کنید و لاجیک مدنظرتونو اعمال کنید. اینم بگم بعضی وقتها بد هم نیست کل منطق سافت دیلیت در سطح دیتابیس اتفاق بیافته

BY جنگولرن


Share with your friend now:
tgoop.com/djangolearn_ir/589

View MORE
Open in Telegram


Telegram News

Date: |

Invite up to 200 users from your contacts to join your channel While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. More>> Step-by-step tutorial on desktop: Add the logo from your device. Adjust the visible area of your image. Congratulations! Now your Telegram channel has a face Click “Save”.!
from us


Telegram جنگولرن
FROM American