在Django中为公共/抽象模型创建管理混合,可以通过以下步骤实现:
AbstractBaseClass
或AbstractUser
类来创建公共/抽象模型。admin.ModelAdmin
类来创建管理混合类。list_display
属性来指定在管理界面中显示的字段,定义list_filter
属性来添加过滤器,定义search_fields
属性来添加搜索功能等。admin.py
文件中,使用admin.site.register()
方法将具体模型注册到管理界面。这样就可以在管理界面中对该模型进行管理操作。下面是一个示例:
from django.contrib import admin
from django.contrib.auth.models import AbstractUser
# 创建公共/抽象模型
class BaseModel(models.Model):
# 公共字段
created_at = models.DateTimeField(auto_now_add=True)
updated_at = models.DateTimeField(auto_now=True)
class Meta:
abstract = True
# 创建管理混合类
class BaseModelAdmin(admin.ModelAdmin):
list_display = ['created_at', 'updated_at']
list_filter = ['created_at']
search_fields = ['created_at']
# 创建具体模型并继承公共/抽象模型和管理混合类
class MyModel(BaseModel):
# 具体模型字段
name = models.CharField(max_length=100)
class Meta:
verbose_name_plural = 'My Models'
# 注册具体模型到管理界面
admin.site.register(MyModel, BaseModelAdmin)
在上述示例中,我们创建了一个公共/抽象模型BaseModel
,包含了created_at
和updated_at
字段。然后,我们创建了一个管理混合类BaseModelAdmin
,定义了在管理界面中显示的字段和过滤器。接着,我们创建了具体模型MyModel
,继承了公共/抽象模型和管理混合类,并添加了额外的字段name
。最后,我们将MyModel
注册到管理界面。
这样,在Django的管理界面中,我们就可以对MyModel
进行管理操作,包括查看、添加、编辑和删除等。
领取专属 10元无门槛券
手把手带您无忧上云