在Django管理对象页面中显示对象ID(主键)

Dem*_*ris 6 python django django-models django-admin

假设我有以下内容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)
Run Code Online (Sandbox Code Playgroud)

我在admin.py使用中注册此模型:

admin.site.register(Book)
Run Code Online (Sandbox Code Playgroud)

Book在admin中查看现有内容时,仅该name字段可见。

我的问题是:此页面也可以显示ID吗?

我发现的大多数答案都与管理员列表有关,而不是与对象实例页面有关。显示ID字段的一种方法是通过editable=False从模型定义中删除来使其可编辑。但是,我想使其保持只读状态。

Dan*_*man 9

您可以将其添加到readonly_fieldsmodeladmin类中。

class BookAdmin(admin.ModelAdmin):
    readonly_fields = ('id',)

admin.site.register(Book, BookAdmin)
Run Code Online (Sandbox Code Playgroud)