Assuming I have the following model.py
:
class Book(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
name = models.CharField(max_length=100, unique=True)
I register this model in the admin.py
using:
admin.site.register(Book)
When viewing an existing Book
in admin, only the name
field is visible.
My question is: Can the ID also be visible in this page?
Most of the answers I find are related to the admin list rather than the object instance page. One way to show the ID field is to make it editable by removing editable=False
from the model definition. However, I would like to keep it read-only.
You can add it to readonly_fields
in the modeladmin class.
class BookAdmin(admin.ModelAdmin):
readonly_fields = ('id',)
admin.site.register(Book, BookAdmin)