自定义Django Admin(多个注册到一个模型)



我有一个Django应用程序,有一个主模型,有很多详细的模型。详细模型与每个具有外键的主模型相关。我在django admin中注册了我的主模型,并将我所有的详细模型包括为TabularInline"布局。

我的models.py看起来像:

# models.py file #
class MasterModel(models.Model):
# master model fields ...
class DetailModel_01(models.Model):
# detail model fields
class DetailModel_02(models.Model):
# detail model fields
class DetailModel_03(models.Model):
# detail model fields
class DetailModel_04(models.Model):
# detail model fields

我的admin.py看起来像:

class Detail_01_Inline(admin.TabularInline):
model = Detail_01
class Detail_02_Inline(admin.TabularInline):
model = Detail_02
class Detail_03_Inline(admin.TabularInline):
model = Detail_03
class Detail_04_Inline(admin.TabularInline):
model = Detail_04
@admin.register(MasterModel)
class MasterModelAdmin(admin.ModelAdmin):
inlines = [
Detail_01_Inline,
Detail_02_Inline,
Detail_03_Inline,
Detail_04_Inline,
]

主模型有太多的字段和太多的内联。因此,不方便用户使用。我需要分隔行距

我可以在Django admin中多次注册主模型,并且每次都包含部分内联吗??

我试过了:

class MasterModelAdmin(admin.ModelAdmin):
model = MasterModel
class MasterModelAdmin2(admin.ModelAdmin):
model = MasterModel
admin.site.register(MasterModel, MasterModelAdmin)
admin.site.register(MasterModel, MasterModelAdmin2)

但. .它不工作。

非常感谢你的意见。

Suhail

您可以为主模型创建一个代理.代理模型的声明与普通模型一样。你可以通过将Meta类的proxy属性设置为True来告诉Django它是一个代理模型。

models.py

class MasterModelProxy(MasterModel):
class Meta:
proxy = True

admin.py

@admin.register(MasterModelProxy)
class MasterModelProxyAdmin(admin.ModelAdmin):
...

相关内容

  • 没有找到相关文章

最新更新