在 admin django 1.6 中注册抽象模型

Mar*_*rte 3 python django django-models django-admin python-3.x

搜索了一段时间后,我没有找到任何明确的解决方案

文件:models.py

class BaseModel(models.Model):
    created_date = models.DateTimeField(auto_now_add=True)
    modified_date = models.DateTimeField(auto_now=True)

    class Meta:
        abstract = True


class Company(BaseModel):
    company_name = models.CharField(max_length=50, unique=True)

    def __str__(self):
        return self.company_name
Run Code Online (Sandbox Code Playgroud)

文件:models.py

from django.contrib import admin
from .models import Company

class CompanyAdmin(admin.ModelAdmin):
    pass

admin.site.register(Company, CompanyAdmin)
Run Code Online (Sandbox Code Playgroud)

我在这里尝试了解决方案:Django admin model Inheritance is possible? 但没有任何效果,管理员只显示 company_name

pah*_*hko 5

这些字段未显示在管理员中的原因是auto_nowauto_now。您需要做的是将它们显式添加为只读字段:

管理文件

from django.contrib import admin
from .models import Company

class CompanyAdmin(admin.ModelAdmin):
    readonly_fields = ('created_date', 'modified_date')

admin.site.register(Company, CompanyAdmin)
Run Code Online (Sandbox Code Playgroud)