Django-admin-תוספות היא אפליקציה Django המספקת תוספות admin. להלן פתרונות לאלה, כולו עטופים יחד.
התקנה
הוסף 'admin_additions' לך settings.INSTALLED_APPS.
לאחר מכן להגדיר את התוספות ברצונך להשתמש. הגדרות ברירת המחדל מוצגות:
ADMIN_ADDITIONS = {
& Nbsp; 'RETURN_TO_FILTERED_CHANGELIST': False,
& Nbsp; 'SAVE_ON_TOP': נכון,
& Nbsp; 'LIST_SELECT_RELATED': False,
& Nbsp; 'FULLY_DYNAMIC_FORMSETS': נכון
}
הגדרות
RETURN_TO_FILTERED_CHANGELIST
בעת עריכת אובייקט, אתה בדרך כלל רוצה לחזור לתצוגה המסוננת שמכם הגיע.
זה קוף-תיקון המשלה את שיטת change_view הרגילה במחלקת בסיס ModelAdmin, ומבטיח כי הוא חוזר לאחר POST בחזרה לנקודת המבט המתייחס.
שיטה זו של חזרה לתצוגה המסוננת לאחר הגשת טופס בשינוי Admin צפה מבוססת במידה רבה על קטע 2,531 http://djangosnippets.org/snippets/2531/.
SAVE_ON_TOP
צריך להיות ברירת המחדל: להציג לשמור את סרגל כלים בחלק העליון של כל change_view.
LIST_SELECT_RELATED
הפעל .select_related אוטומטי () לכל השאילתות לchange_list. אם יש לך שינה את עמודות התצוגה, ולעשות את כל חיפושים בכל, זה רעיון טוב.
FULLY_DYNAMIC_FORMSETS
מגדיר את הערך נוסף על InlineModelAdmin ל -0, אז אתה פשוט להשתמש בלחצן בנוסף, במקום כל formsets ריק.
תיקון פונקציות
patch_model_admin (מודל, patch_function)
תיקון ModelAdmin מותקן. זה כולל ביטול רישום, תיקון ולאחר מכן מחדש רישום. אתה יכול לעבור במודל, או מחרוזת מהצורה "app_label.ModelName", ופונקציה שתיקח ותיקון כיתת ModelAdmin.
אם אתה יוצר מחלקה חדשה המבוססת על עבר בכיתה, אז אתה יכול להחזיר אותו: שלאחר מכן ניתן להשתמש ברישום מחדש. אם אתה פשוט לתקן את המעמד הקיים, אתה יכול להחזיר את דבר, ואת המעמד המקורי תוקנו ישמש.
מadmin_additions.patchers patch_model_admin היבוא
patcher_function def (model_admin):
& Nbsp; # האם דברים כאן.
& Nbsp; model_admin.form = MyClassyForm
& Nbsp; # model_admin חזרה אופציונאלי: ייתכן שתיקון במקום
patch_model_admin (MyModel, patcher_function)
add_inlines (מודל, * inlines)
מקרה פשוט / משותף של תיקון ModelAdmin - הוספה מוטבעת חדש:
ממנהל יבוא django.contrib
מadmin_additions.patchers add_inlines היבוא
מFoo יבוא דגמים
הכיתה FooInline (admin.StackedInline):
& Nbsp; מודל = Foo
add_inlines ('bar.Bar', FooInline)
אתה יכול לעבור inlines מרובה.
אתה יכול גם לעבור בכל שילוב של מודלים או inlines admin: אם מודל מתקבל, היא תיצור StackedInline עבור דגם זה.
add_actions (מודל, * פעולות)
כמו לinlines, אבל להוסיף פעולה.
patch_admin (דגם)
מעצב, שיכול לקשט פונקציה שתוקן.
מadmin_additions.patchers patch_admin היבוא
patch_admin (דגם)
patcher_function def (model_admin):
& Nbsp; model_admin.form = MyClassyForm
. תחביר זה terser מאשר פונקצית patch_model_admin מעל
דרישות :
- Python
- Django
תגובות לא נמצא