在admin django 1.6中注册抽象模型

Register abstract model in admin django 1.6(在admin django 1.6中注册抽象模型)

本文介绍了在admin django 1.6中注册抽象模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

After searching a while i didn't find any clear solution

文件: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

文件:models.py

from django.contrib import admin
from .models import Company

class CompanyAdmin(admin.ModelAdmin):
    pass

admin.site.register(Company, CompanyAdmin)

我在这里尝试了解决方案:Django admin model Inheritance is可能吗? 但没有任何效果,管理员只显示公司名称

I tried the solution here: Django admin model Inheritance is it possible? but nothing works, and the admin is only showing the company_name

推荐答案

这些字段没有显示在后台的原因是 auto_nowauto_now.您需要做的是将它们显式添加为只读字段:

The reason why those fields are not being showed in the admin, is because of the auto_now and auto_now. What you need to do is adde them explicitly as read-only fields:

admin.py

from django.contrib import admin
from .models import Company

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

admin.site.register(Company, CompanyAdmin)

这篇关于在admin django 1.6中注册抽象模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:在admin django 1.6中注册抽象模型

基础教程推荐