Menu
CoddyTech

התאמה אישית של אתר הניהול

חלק מהיחידה מודלים וממשק הניהול במסלול ה-Django של Coddy. שיעור 21 מתוך 23.

ברשימת הספרים בממשק הניהול מופיעה עמודה אחת, שמציגה את __str__ של כל ספר, ואין דרך למצוא דבר. מחלקה ModelAdmin, שנרשמת באמצעות הדקורטור, משנה זאת. עבור Loan עם מפתח זר book:

@admin.register(Loan)
class LoanAdmin(admin.ModelAdmin):
    list_display = ["book", "friend", "lent_on", "returned"]
    search_fields = ["friend", "book__title"]
    list_filter = ["returned", "lent_on"]

list_display בוחר את העמודות; עמודת מפתח זר מציגה את __str__ של השורה הקשורה, ושדה רבים-לרבים לא יכול להיות עמודה. search_fields מוסיף תיבת חיפוש. כדי לחפש דרך מפתח זר, יש לציין שדה של המודל האחר אחרי שני קווים תחתונים, book__title: book לבדו הוא קישור, לא טקסט, והוא גורם לקריסת החיפוש. list_filter מוסיף סרגל צדדי של מסננים.

הדקורטור עושה אותו דבר כמו admin.site.register(Loan, LoanAdmin). יש לרשום כל מודל פעם אחת: רישום בפעם השנייה עוצר את האתר עם AlreadyRegistered.

challenge icon

אתגר

קל

ב־books/admin.py, הקצה ל־Book את BookAdmin במקום לרשום אותו באופן רגיל. רשימת הספרים צריכה לכלול:

  • עמודות עבור title, author, year, genre ו־is_read
  • תיבת חיפוש שמאתרת ספרים לפי הכותרת או לפי שם המחבר
  • סרגל צד שמסנן לפי genre ו־is_read

הפעל שוב את createsuperuser, התחבר וחפש ב־Books את herbert: Children of Dune ו־Dune.

נסו בעצמכם

from django.contrib import admin

from .models import Author, Book, Tag

admin.site.register(Book)
admin.site.register(Author)
admin.site.register(Tag)
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה מודלים וממשק הניהול

תרגלו בעצמכם: Django אונליין