4️⃣ 🛠️ Django Admin Interface
Estimated reading: 3 minutes 294 views

Django Include Models – Register Your Models in the Admin Panel (2025 Guide)

Introduction – What Does “Include Models” Mean in Django?

In Django, including a model typically refers to registering it with the Django admin site, so it becomes manageable via the admin interface. Once registered, you can add, edit, view, and delete model data through Django’s built-in back office UI.

In this guide, you’ll learn:

  • How to register models in admin.py
  • How to customize model admin interfaces
  • How to manage multiple models
  • Best practices for model inclusion

Step 1: Sample Model

models.py

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name

class Post(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    category = models.ForeignKey(Category, on_delete=models.CASCADE)

Step 2: Register Models in admin.py

To make these models visible and manageable in the admin panel:

admin.py

from django.contrib import admin
from .models import Post, Category

admin.site.register(Post)
admin.site.register(Category)

Now you can access Posts and Categories from http://localhost:8000/admin/


Step 3: Customize ModelAdmin

Customize how your models appear in the admin interface:

class PostAdmin(admin.ModelAdmin):
    list_display = ('title', 'category')
    search_fields = ('title',)
    list_filter = ('category',)

admin.site.register(Post, PostAdmin)
FeaturePurpose
list_displayColumns shown in the model list view
search_fieldsEnables search by fields
list_filterAdds sidebar filters

Optional: Inline Related Models

Allow editing related models inline with the parent model:

class PostInline(admin.TabularInline):
    model = Post
    extra = 1

class CategoryAdmin(admin.ModelAdmin):
    inlines = [PostInline]

admin.site.register(Category, CategoryAdmin)

Best Practices

  • Use __str__() in models for readable admin labels
  • Customize ModelAdmin for better usability
  • Use inlines to manage one-to-many relationships efficiently
  • Don’t register sensitive models unless protected by permissions

Summary – Recap & Next Steps

Key Takeaways:

  • Include models in Django admin using admin.site.register()
  • Customize admin using ModelAdmin
  • Use inlines for editing related objects directly
  • Keep admin organized and user-friendly with filters and search

Real-World Relevance:
Including models in Django admin streamlines data management for developers, admins, and clients—without needing to build custom dashboards.


Frequently Asked Questions (FAQ)

Do I need to include every model in admin?

Only include the models you want to manage through the admin UI.


How do I hide models from admin?

Don’t register them in admin.py, or unregister with:

admin.site.unregister(MyModel)

How do I change the default model label?

Use verbose_name in Meta:

class Post(models.Model):
    class Meta:
        verbose_name = "Blog Post"

Can I reorder fields in the form?

Yes. Use fields or fieldsets in ModelAdmin.


Can I limit which users can edit a model?

Yes. Use Django’s permission system or override has_change_permission() in ModelAdmin.


Share Now :
Share

Django Include Models

Or Copy Link

CONTENTS
Scroll to Top