管理面板,显示date_created和date_updated?

van*_*lay 2 django

我尝试在上一篇文章中遵循以下答案: DateTimeField在管理系统中未显示

但是也许我太昏暗了,无法理解它。

没有显示created_at的字段。有人能指出我正确的方向吗?

模型

class holding_transaction(models.Model):
    holdingname = models.ForeignKey(holding, on_delete=models.CASCADE)
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

管理员

class holding_transactionAdmin(admin.ModelAdmin):

    readonly_fields = ('created_at', )

admin.site.register(holding_transaction, holding_transactionAdmin)   
Run Code Online (Sandbox Code Playgroud)

编辑:

rar*_*iru 5

更新:

这是一个虚构应用程序对我有用的代码Beatles

甲壳虫/模型.py:

from django.db import models

# Create your models here.

class Person(models.Model):
    name = models.CharField(max_length=128)
    created_at = models.DateTimeField(auto_now_add=True)


    def __str__(self):              # __unicode__ on Python 2
        return self.name
Run Code Online (Sandbox Code Playgroud)

披头士乐队/admin.py

from django.contrib import admin

# Register your models here.

from beatles.models import Person


@admin.register(Person)
class PersonAdmin(admin.ModelAdmin):
    readonly_fields = ('created_at', )
Run Code Online (Sandbox Code Playgroud)

提到的问题的答案指出,这是不可能发生的。

但是,如果要编辑此类字段,请根据文档进行以下操作:

如果您希望能够修改此字段,请设置以下内容,而不是auto_now_add = True:

For DateField: default=date.today - from datetime.date.today()
For DateTimeField: default=timezone.now - from django.utils.timezone.now()
Run Code Online (Sandbox Code Playgroud)

如果您只想显示这些字段,则可以使用以下代码

class YourModelAdmin(admin.ModelAdmin):
    readonly_fields = ('created_at', 'updated_at', )

admin.site.register(YourModel, YourModelAdmin)
Run Code Online (Sandbox Code Playgroud)