在Django的管理模型详情中显示模型父级字段

3

我让大多数模型继承自:

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的每个字段。

1个回答

1
由于在模型中添加了auto_now_add,它会将editable=False设置到该字段中,因此您现在无法显示这些字段。所以,您的字段是只读的。 来自docs

目前实现的是,将auto_now或auto_now_add设置为True将导致字段具有editable=False和blank=True的设置。

要在管理界面中显示任何只读字段,您必须在您的管理员视图中添加readonly_fields = ['field_name']定义,如下所示:
@admin.register(Sale)
class SaleAdmin(admin.ModelAdmin):
    readonly_fields = ['created_at','updated_at']

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接