繁体   English   中英

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

[英]Show object ID (primary key) in Django admin object page

假设我有以下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)

我使用以下命令在admin.py注册此模型:

admin.site.register(Book)

在管理员中查看现有Book时,只显示name字段。

我的问题是:此页面中是否也可以看到ID?

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

您可以将它添加到modeladmin类中的readonly_fields

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

admin.site.register(Book, BookAdmin)

编辑

我删除了我的答案,因为它和@DanielRoseman一样,但这只是为了澄清。 这来自文档

如果为False,则该字段不会显示在admin或任何其他ModelForm中。 在模型验证期间也会跳过它们。 默认为True。

因此,使用readonly_fields可行的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM