gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 10:08:00 24 4
gpt4 key购买 nike

我有一系列表格,我希望它们都有一个订单字段。所以我做了一个抽象模型:

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 中的任何更多项目,那很好。例如,以下会产生错误,因为顺序在 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",)

关于django - 从自定义模型继承时保留 ModelAdmin 属性(list_display 等),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637446/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com