django – 从自定义模型继承时保留ModelAdmin属性(list_display等)

我有一系列的表格,我想都有一个订单字段.所以我做了一个抽象的模型:

class OrderedModel(models.Model):
    order = models.IntegerField(default=-1)
    def _order(self):
        pass #ordering widget for changelist_view
    _order.allow_tags = True
    def save(self,*args,**kwargs):
        #set order = 0 if < 0
        super(OrderedModel,self).save(*args,**kwargs)
    class Meta:
        abstract = True

我不希望他们更改change_view中的“order”字段,因此我创建了以下ModelAdmin:

class OrderedAdmin(models.ModelAdmin):
    list_display = ("__str__","_order","order")
    list_editable = ("order",)
    readonly_fields = ("order",)

只要从OrderedModel继承的每个模型都不需要list_display,list_editable或readonly_fields中的任何项目,那就没问题.例如,以下内容生成错误,因为order在list_editable中但不在list_display中:

class Chapter(OrderedModel):
    title = models.CharField(max_length=32)

class Chapteradmin(OrderedAdmin):
    list_display = ("title",)

我注意到有一个get_readonly_fields我可以更改以确保“order”被添加到readonly_fields,但是没有get_list_display或get_list_editable来重写.是否有可能做到这一点?

解决方法

class Chapteradmin(OrderedAdmin):
    list_display = OrderedAdmin.list_display + ("title",)

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...