×
   ❮   
PYTHON FOR DJANGO DJANGO FOR BEGINNERS DJANGO SPECIFICS PAYMENT INTEGRATION API BASICS Roadmap
     ❯   

MODEL ADMIN

List Display

Customizing List Display

Customizing the list display in the Django admin interface allows you to control which fields are visible to users, making data management more intuitive and efficient.

Overview

By default, Django displays a list of objects in the admin interface with basic information. However, you can enhance this by specifying which fields should appear in the list view, their order, and even how they should be formatted.

Key Attributes for Customizing List Display

To customize the list display, you will primarily work with the list_display attribute in your ModelAdmin class. Here’s how it works:

1. Defining List Display Fields

In your admin.py file, you can set the list_display attribute to include the model fields you want to show:


from django.contrib import admin
from .models import MyModel

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('name', 'created_at')

admin.site.register(MyModel, MyModelAdmin)

2. Custom Methods in List Display

You can also add custom methods to your model that return values you want to display. For example:


class MyModel(models.Model):
    name = models.CharField(max_length=100)
    created_at = models.DateTimeField(auto_now_add=True)
    
    def display_name(self):
        return f"Name: {self.name}"

class MyModelAdmin(admin.ModelAdmin):
    list_display = ('display_name', 'created_at')

3. Controlling Field Order

The order of fields in the list_display tuple determines their arrangement in the admin list view. You can customize this order to suit your needs.

Conclusion

Customizing the list display in the Django admin is a powerful way to enhance the usability of your application. By selecting the right fields and organizing them effectively, you can create a more intuitive experience for administrators.


References


Django-tutorial.dev is dedicated to providing beginner-friendly tutorials on Django development. Examples are simplified to enhance readability and ease of learning. Tutorials, references, and examples are continuously reviewed to ensure accuracy, but we cannot guarantee complete correctness of all content. By using Django-tutorial.dev, you agree to have read and accepted our terms of use , cookie policy and privacy policy.

© 2024 Nischal Lamichhane. All Rights Reserved.
Django-tutorial.dev is styled using Bootstrap 5.
And W3.CSS.