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

Show model parent fields in Django's admin model details

我让我的大部分模型继承自:

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 设置到您的字段中。因此,您的字段是只读的。 来自 docs:

As currently implemented, setting auto_now or auto_now_add to True will cause the field to have editable=False and blank=True set.

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

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