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)