在 Django 的管理模型详细信息中显示模型父字段



我让我的大多数模型继承自:

class TimeStampedModel(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
get_latest_by = 'updated_at'

像这样:

class Sale(TimeStampedModel):
ip_address = models.GenericIPAddressField(null=True)
# ...

但是,如果我访问/admin/myapp/sale/123/change/,我只看到ip_address字段。

我如何还可以查看created_atupdated_at字段?可能,而不必指定列表中Sale的每个字段。

您现在不能显示这些字段,因为当您将auto_now_add添加到模型中时,它也会将editable=False设置到字段中。因此,您的字段是只读的。来自文档:

根据当前实现,将auto_now或auto_now_add设置为True将导致字段设置为可编辑=False和空白=True。

要在管理界面中显示任何只读字段,必须在管理视图中添加readonly_fields = ['field_name']定义,如下所示:

@admin.register(Sale)
class SaleAdmin(admin.ModelAdmin):
readonly_fields = ['created_at','updated_at']

最新更新