django admin readonly models

Step 1: Import the required modules and classes.

from django.contrib import admin
from .models import YourModel

Step 2: Create a custom admin class that inherits from admin.ModelAdmin.

class YourModelAdmin(admin.ModelAdmin):
    pass

Step 3: Override the get_readonly_fields method in the custom admin class to specify the fields you want to make read-only.

class YourModelAdmin(admin.ModelAdmin):
    def get_readonly_fields(self, request, obj=None):
        return [field.name for field in obj._meta.fields]

Step 4: Register the model with the custom admin class.

admin.site.register(YourModel, YourModelAdmin)

The complete code snippet:

from django.contrib import admin
from .models import YourModel

class YourModelAdmin(admin.ModelAdmin):
    def get_readonly_fields(self, request, obj=None):
        return [field.name for field in obj._meta.fields]

admin.site.register(YourModel, YourModelAdmin)