Bird
Raised Fist0
Djangoframework~5 mins

Admin customization with ModelAdmin in Django - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the <code>ModelAdmin</code> class in Django admin?
The <code>ModelAdmin</code> class lets you customize how a model appears and behaves in the Django admin interface, like which fields show, how they are displayed, and what actions are available.
Click to reveal answer
beginner
How do you display specific fields in the list view of a Django admin page?
You set the <code>list_display</code> attribute in your <code>ModelAdmin</code> class to a tuple of field names you want to show in the list view.
Click to reveal answer
beginner
What does the search_fields attribute do in a ModelAdmin?
It adds a search box to the admin list page that lets users search the specified fields for matching text.
Click to reveal answer
intermediate
How can you group fields in the Django admin form using ModelAdmin?
You use the fieldsets attribute to group fields into sections with titles, making the form easier to read and organize.
Click to reveal answer
beginner
What is the use of the list_filter attribute in ModelAdmin?
It adds filters on the right side of the admin list page so users can quickly filter records by certain fields like dates or categories.
Click to reveal answer
Which ModelAdmin attribute controls which fields appear in the list view?
Alist_display
Bsearch_fields
Cfieldsets
Dlist_filter
How do you add a search box to the Django admin list page?
ABy setting <code>list_filter</code>
BBy setting <code>fieldsets</code>
CBy setting <code>list_display</code>
DBy setting <code>search_fields</code>
What does the fieldsets attribute do in ModelAdmin?
AFilters records in the list view
BDefines which fields are searchable
CGroups fields into sections in the form
DControls pagination size
Which attribute adds filters on the right side of the admin list page?
Asearch_fields
Blist_filter
Clist_display
Dfieldsets
To customize the admin interface for a model, you should:
ACreate a <code>ModelAdmin</code> subclass and register it
BEdit the model's <code>Meta</code> class
COverride the model's <code>__str__</code> method
DModify the database schema
Explain how to customize the list view of a model in Django admin using ModelAdmin.
Think about what you want to show, filter, and search in the list.
You got /4 concepts.
    Describe how to organize fields in the Django admin form with ModelAdmin.
    Consider how to make a long form easier to read.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of customizing a Django ModelAdmin class?
      easy
      A. To define URL routes for the model views
      B. To control how a model is displayed and managed in the Django admin interface
      C. To write custom SQL queries for the model
      D. To create new database tables automatically

      Solution

      1. Step 1: Understand ModelAdmin role

        The ModelAdmin class customizes the admin interface for a model, such as which fields show and how data is filtered.
      2. Step 2: Identify what ModelAdmin does not do

        It does not create tables, write SQL, or define URLs; those are handled elsewhere in Django.
      3. Final Answer:

        To control how a model is displayed and managed in the Django admin interface -> Option B
      4. Quick Check:

        ModelAdmin controls admin display = D [OK]
      Hint: ModelAdmin customizes admin display, not database or URLs [OK]
      Common Mistakes:
      • Confusing ModelAdmin with database migrations
      • Thinking ModelAdmin handles URL routing
      • Assuming ModelAdmin writes SQL queries
      2. Which of the following is the correct way to register a model with a custom ModelAdmin in Django admin?
      easy
      A. admin.site.add(MyModel, MyModelAdmin)
      B. admin.register(MyModel, MyModelAdmin)
      C. admin.site.register(MyModel, MyModelAdmin)
      D. admin.register_site(MyModel, MyModelAdmin)

      Solution

      1. Step 1: Recall Django admin registration syntax

        The correct method to register a model with a custom admin class is admin.site.register(Model, ModelAdmin).
      2. Step 2: Check other options for validity

        Other options like admin.register or admin.site.add do not exist in Django's admin API.
      3. Final Answer:

        admin.site.register(MyModel, MyModelAdmin) -> Option C
      4. Quick Check:

        Use admin.site.register to register models = A [OK]
      Hint: Use admin.site.register(Model, AdminClass) to register [OK]
      Common Mistakes:
      • Using admin.register instead of admin.site.register
      • Trying to call admin.site.add which doesn't exist
      • Confusing method names for registration
      3. Given this ModelAdmin code, what fields will appear in the Django admin list view?
      class BookAdmin(admin.ModelAdmin):
          list_display = ('title', 'author', 'published_date')
      
      admin.site.register(Book, BookAdmin)
      medium
      A. 'title', 'author', and 'published_date' fields
      B. Only 'title' and 'author' fields
      C. All fields of the Book model
      D. No fields will appear because list_display is incorrect

      Solution

      1. Step 1: Understand list_display usage

        The list_display attribute defines exactly which fields show in the admin list view.
      2. Step 2: Check the fields listed

        The tuple includes 'title', 'author', and 'published_date', so these three fields will appear.
      3. Final Answer:

        'title', 'author', and 'published_date' fields -> Option A
      4. Quick Check:

        list_display shows specified fields = A [OK]
      Hint: list_display shows only fields listed in its tuple [OK]
      Common Mistakes:
      • Assuming all model fields show by default
      • Thinking list_display must include all fields
      • Believing list_display is optional for showing fields
      4. What is wrong with this ModelAdmin code snippet?
      class AuthorAdmin(admin.ModelAdmin):
          search_fields = 'name'
      
      admin.site.register(Author, AuthorAdmin)
      medium
      A. search_fields should be a list or tuple, not a string
      B. AuthorAdmin must inherit from admin.ModelAdminBase
      C. admin.site.register is missing parentheses
      D. search_fields cannot be used in ModelAdmin

      Solution

      1. Step 1: Check search_fields type

        The search_fields attribute must be a list or tuple of field names, not a single string.
      2. Step 2: Validate other parts

        Inheritance from admin.ModelAdmin is correct, registration syntax is correct, and search_fields is valid in ModelAdmin.
      3. Final Answer:

        search_fields should be a list or tuple, not a string -> Option A
      4. Quick Check:

        search_fields needs list/tuple = C [OK]
      Hint: Wrap search_fields in [] or () even for one field [OK]
      Common Mistakes:
      • Using a plain string instead of list/tuple for search_fields
      • Confusing ModelAdmin inheritance class
      • Missing parentheses in admin.site.register (not here though)
      5. You want to add a filter sidebar in Django admin to filter books by their 'genre' and 'published_year'. Which ModelAdmin attribute should you customize, and how?
      hard
      A. Add filter_fields = ['genre', 'published_year'] in the ModelAdmin
      B. Use search_fields = ('genre', 'published_year') to enable filtering
      C. Override filter_sidebar = True in the ModelAdmin
      D. Set list_filter = ('genre', 'published_year') in the ModelAdmin class

      Solution

      1. Step 1: Identify correct attribute for filters

        The list_filter attribute adds filter sidebars for specified fields in the admin list view.
      2. Step 2: Check other options for correctness

        filter_fields and filter_sidebar do not exist; search_fields is for search, not filters.
      3. Final Answer:

        Set list_filter = ('genre', 'published_year') in the ModelAdmin class -> Option D
      4. Quick Check:

        Use list_filter for sidebar filters = B [OK]
      Hint: Use list_filter tuple to add filter sidebar fields [OK]
      Common Mistakes:
      • Using search_fields instead of list_filter for filters
      • Trying to use non-existent filter_fields attribute
      • Assuming filter_sidebar is a valid option
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard