我只是在看文档以能够更改中间表,但是当我实现它时,我遇到了麻烦:
https://docs.djangoproject.com/en/2.0/topics/db/models/#extra-fields-on-many-to-many-relationships
这样的问题是,尽管我可以迁移数据库并运行应用程序,但是当我进入管理员时,我无法通过trough属性正确地可视化模型之间的关系(尤其是模型中名为Tested
的字段)。
为什么会发生,如何纠正?
这是设计使然。由于需要额外的数据(在您的情况下为ManyToMany
),Django无法自动为使用through
表的tested
关系生成窗口小部件。从Django docs:
当您使用ManyToManyField的through参数指定中介模型时,管理员默认不会显示小部件。这是因为该中间模型的每个实例需要的信息比单个窗口小部件中显示的信息更多,并且多个窗口小部件所需的布局将根据中间模型而有所不同。
但是,我们仍然希望能够内联编辑该信息。幸运的是,使用内联管理员模型很容易做到这一点。
您最好的选择是按照文档中的说明创建内联管理模型。