【Django】admin后台的相关设置
假设model.py中有Unit模型,继承自BaseModel
,BaseModel
中有add_time
字段记录数据的添加时间。
class Unit(BaseModel):
"""单位model"""
unit_name = models.CharField(verbose_name="单位名称", max_length=30)
sort = models.IntegerField(verbose_name="排序", default=0)
parent = models.ForeignKey("self", on_delete=models.SET_NULL, verbose_name="上级单位", null=True, blank=True)
class Meta:
verbose_name = "单位信息"
verbose_name_plural = verbose_name
def __str__(self):
return self.unit_name
在admin.py中将Unit注册到admin后台
from django.contrib import admin
from apps.asset.models import Unit
# Register your models here.
# admin.site.register(Unit)
@admin.register(Unit)
class UnitAdmin(admin.ModelAdmin):
fields = ['unit_name', 'sort', 'parent']
exclude = ['add_time']
list_display = ('unit_name', 'sort', 'parent', 'add_time')
search_fields = ['unit_name']
list_filter = ['sort']
list_editable = ['sort']
list_per_page = 5
fields
可以设置详情页面中显示哪些字段。
exclude
可以设置详情页面中哪些字段不显示出来。
list_display
可以设置列表页中显示哪些字段。
search_fields
可以设置通过哪些字段来搜索。
list_filter
可以设置对哪些字段进行过滤。
list_editable
可以设置在列表页直接对哪些字段进行编辑。
list_per_page
可以设置列表页每一页显示的数据数量。