【发布时间】:2020-07-31 11:34:34
【问题描述】:
这是我的管理页面的样子:
这是管理页面的链接: https://i.stack.imgur.com/Ghq5f.png
随着我添加更多模型,我将拥有更多与 Selector 相关的外键,并且选择器模型的每个实例都不需要所有内联。为了简化管理页面,我希望能够选择和选择要显示的内联。有没有人对我如何简化我的页面并有一个下拉多选框来动态显示内联有任何建议?
这是我的 models.py 文件:
from django.db import models
class Selector(models.Model):
lst = [
("Model1", "Model1"),
("Model2", "Model2"),
("Model3", "Model3"),
("Model4", "Model4"),
]
choice = models.CharField("Choices", choices=lst, max_length=40)
class Model1(models.Model):
select = models.ForeignKey(Selector, on_delete=models.CASCADE)
param1 = models.IntegerField("Input 1")
param2 = models.IntegerField("Input 2")
param3 = models.IntegerField("Input 3")
class Model2(models.Model):
select = models.ForeignKey(Selector, on_delete=models.CASCADE)
param1 = models.IntegerField("Input 1")
param2 = models.IntegerField("Input 2")
param3 = models.IntegerField("Input 3")
class Model3(models.Model):
select = models.ForeignKey(Selector, on_delete=models.CASCADE)
param1 = models.IntegerField("Input 1")
param2 = models.IntegerField("Input 2")
param3 = models.IntegerField("Input 3")
class Model4(models.Model):
select = models.ForeignKey(Selector, on_delete=models.CASCADE)
param1 = models.IntegerField("Input 1")
param2 = models.IntegerField("Input 2")
param3 = models.IntegerField("Input 3")
这是我的 admin.py 文件:
from django.contrib import admin
from .models import Model1, Model2, Model3, Model4, Selector
class Model1Admin(admin.TabularInline):
model = Model1
extra = 1
class Model2Admin(admin.TabularInline):
model = Model2
extra = 1
class Model3Admin(admin.TabularInline):
model = Model3
extra = 1
class Model4Admin(admin.TabularInline):
model = Model4
extra = 1
class SelectorAdmin(admin.ModelAdmin):
model = Selector
inlines = [Model1Admin, Model2Admin, Model3Admin, Model4Admin]
admin.site.register(Selector, SelectorAdmin)
【问题讨论】:
标签: django django-models django-forms django-views django-admin