django admin在字段中有选项取决于其他字段中的值

django admin在字段中有选项取决于其他字段中的值,django,django-admin,manytomanyfield,django-modeladmin,Django,Django Admin,Manytomanyfield,Django Modeladmin,我刚从Django开始,在管理端设置模型时遇到了麻烦 情况是这样的。我有12个中心,每个中心有20多个实验室。 我有一个出版示范班。在管理方面,我希望能够为每个出版物分配中心和实验室。每个出版物可分配多个中心,每个中心内可分配多个实验室 但是,我不希望实验室领域列出所有可能的实验室,因为实验室太多了。我希望在“实验室”字段中看到的列表仅显示在“中心”字段中选择的中心中的实验室(理想情况下,如果选择了多个中心,则每个中心将有单独的列表可供选择) 以下是我的模型: class Publication

我刚从Django开始,在管理端设置模型时遇到了麻烦

情况是这样的。我有12个中心,每个中心有20多个实验室。 我有一个出版示范班。在管理方面,我希望能够为每个出版物分配中心和实验室。每个出版物可分配多个中心,每个中心内可分配多个实验室

但是,我不希望实验室领域列出所有可能的实验室,因为实验室太多了。我希望在“实验室”字段中看到的列表仅显示在“中心”字段中选择的中心中的实验室(理想情况下,如果选择了多个中心,则每个中心将有单独的列表可供选择)

以下是我的模型:

class Publications(models.Model):
    center = models.ManyToManyField('Center')
    laboratory = models.ManyToManyField('Laboratory')

class Center(models.Model):
    name = models.CharField(max_length=255)

class Laboratory(models.Model):
    name = models.CharField(max_length=255)
因此,在创建管理类(
PublicationsAdmin(Admin.ModelAdmin)、CenterAdmin(Admin.ModelAdmin)、LaboratoryAdmin(Admin.ModelAdmin)
)并在Admin.py中注册它们之后,我可以转到管理页面添加中心和实验室,然后在添加出版物时,我可以选择中心和实验室。但是列表中有太多的实验室不便于使用。我只想看到属于所选中心的实验室(理想情况下,如果选择了多个中心,则需要单独的实验室列表、输入框或窗口等)


有没有办法通过不同的设置将它们联系在一起?或者是否有办法修改PublicationsAdmin(admin.ModelAdmin)中的逻辑?

为此,最好的选择是使用。你会特别感兴趣的,这正是你想要的

还要注意,为了筛选属于实验室的中心,您需要从
中心
实验室
的外键

班级中心(models.Model):
name=models.CharField(最大长度=255)
实验室=模型。外键(实验室,模型。保护)

aha,我想可能是这样的。但是,它应该说实验室在第二线而不是中心吗?我会检查自动完成光链接。是的。我的错误。编辑它似乎自动完成灯可以工作,但我的理解是,它在窗体和视图中使用,但在管理页面上不使用。但我需要一些时间才能弄明白(他们的解释并不精彩)。同时,也许有人知道另一种方式或另一个软件包。它与管理页面完美配合。一旦您自定义了
表单
类,只需设置
ModelAdmin的
表单
属性即可:我完全忽略了这一点。谢谢一旦我弄明白了,我会把这个标记为已回答。不过这需要我一段时间