如果有值,如何在django admin中有条件地显示字段?

Str*_*ker 5 django-models django-admin

在admin.py文件中我有一个

 fields = ('name', 'description', ('created_by','created', ),('updated_by', 'updated'))
Run Code Online (Sandbox Code Playgroud)

我如何只显示created,created_by如果是非空白.当我要创建新记录时,created_by,created,updated_by和updated是空白的,我不需要显示它们.

只有当我保存记录时,我才想在django admin中显示这些字段.

Eug*_*kov 10

尝试通过get_fields方法动态设置字段.像这样:

class MyAdmin(ModelAdmin):
    def get_fields(self, request, obj=None):
        if obj is None:
            return ('name', 'description')
        return ('name', 'description', ('created_by','created', ),('updated_by', 'updated'))
Run Code Online (Sandbox Code Playgroud)

https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#django.contrib.admin.ModelAdmin.get_fields