django-logicaldelete

צילום מסך תוכנה:
django-logicaldelete
פרטי תוכנה:
גרסה: 1.1 Beta 1 Dev3
טען תאריך: 12 May 15
מפתחים: Patrick Altman
רשיון: ללא תשלום
פופולריות: 1

Rating: nan/5 (Total Votes: 0)

הערות מפתחים


יחידת-logicaldelete הוא יישום קטן ופשוט שזרקתי יחד כדי לקבל קצת שימוש חוזר ממשהו שאני עושה כמעט בכל פרויקט וכל דגם אני יוצר & nbsp;. זה קל מדי לנתונים טובים כדי לקבל נמחקו וזה יהיה בלתי הפיך. זה גם קל מדי כדי לתקן את זה על ידי דריסת שיטה של ​​מודל מחיקה () ורק סימון רשומות כנמחקה ולאחר מכן מינוף המנהלים של אופטימיות כדי לעקוף התנהגות ברירת מחדל כך שהפריטים שנמחקו באופן הגיוני לא יוחזרו בquerysets.
ישנם שני חריגים עם זאת, שמצאתי שימושי לכלל זה.
& Nbsp; 1. במנהל אני רוצה לראות הכל עם מחוון של האם או לא זה כבר מחק, עם היכולת לסנן את הרישומים רק פעילים, (או שנמחקו לצורך העניין).
& Nbsp; 2. אני עדיין חושב שזה בקשה תקפה כאשר פריט הוא מופרך על ידי זה ערך מפתח ראשי, שהאובייקט צריך לחזור, גם אם הוא סומן כנמחק.
שימוש ביחידה-logicaldelete
שימוש באפליקציה היא די פשוט:
& Nbsp; 1. שים את תת-תיקיית logicaldelete בנתיב פייתון.
& Nbsp; 2. ירושה מlogicaldelete.models.Model לכל הדגמים שברצונך לשתף בפונקציונליות זו.
& Nbsp; 3. צור ו / או הרשם מנהלים עבור כל אחד מהמודלים האלה באמצעות logicaldelete.admin.ModelAdmin
נוסף
מוחק הגיוני מטופלות לפי תאריך הטבעת עמודת date_removed. בנוסף, עמודות DATE_CREATED וdate_modified תהיה מאוכלסות כמו נוחות.
הרחבות אפשריות
אתה יכול בקלות תת שתי כיתות כדי לספק פונקציונליות גנריות ושימושית למודלים שלך.
UUID יסודי מפתח
אני בדרך כלל באמצעות שדות UUID המפתחות העיקריים שלי כי הם יאפשרו לי שבר השולחנות שלי, אם וכאשר אני צריך, בנוסף, הם מספקים id לטשטש לנתונים שלי (אנשים לא יכולים לקבוע כמה של אובייקט מסוים יש לי ב מסד הנתונים שלי, אם אני לא רוצה שהם ידעו, אבל פשוט מחפשים id שלם בURL).
רצף שדה
פעמים רבות אני מוצא את זה שימושי יש שדה שלם על המודלים שלי, המאפשרים ולרצף במפורש בשליטה. אני בדרך כלל ליישם את זה כיישום סוג יורד בו הנתונים ממוינים מגבוה לנמוך לפי ערך רצף.
על מנת ליישם את זה שהיית תת שני הדגם וModelAdmin, שבו הדגם יהיה תוספת פשוטה ברורה של IntegerField, ModelAdmin, היה לעקוף get_query_set, לעשות משהו כמו:
SequencedModel כיתה (logicaldelete.models.Model):
& Nbsp; רצף = models.IntegerField ()
MyLogicalDeletedManager כיתה (logicaldelete.models.LogicalDeletedManager):
& Nbsp; def get_query_set (עצמי):
& Nbsp; אם self.model:
& Nbsp;. QS = סופר (MyLogicalDeletedManager, עצמי) .get_query_set () לסנן (date_removed__isnull = True)
& Nbsp; אם SequencedModel בinspect.getmro (self.model):
& Nbsp; QS = qs.order_by ('- רצף')
& Nbsp; QS תמורה

מה חדש בהודעה זו:

  • כל מה שהשתנה לall_with_deleted על LogicalDeleteManager
  • LogicalDeleteManager עבר מlogicaldelete.models לlogicaldelete.managers
  • הוסר נמחק וכל מה שquerysets מlogicaldelete.models.Model

דרישות :

  • פייתון
  • יחידת

תוכנות אחרות של יזם Patrick Altman

django-site-access
django-site-access

14 Apr 15

django-trending
django-trending

14 Apr 15

formly
formly

11 Apr 15

תגובות ל django-logicaldelete

תגובות לא נמצא
להוסיף הערה
הפעל את התמונות!