我有一个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):
...