Django:从其他模型预填充字段或手动添加

时间:2017-06-26 15:09:09

标签: django django-models

我找不到如何实现以下目标:

假设您有两种型号:

  • 候选人(first_name,last_name,brith_date)
  • 开发人员(first_name,last_name,birth_date,team_name,salary,...)

候选人是由外部公司招募的。每天早上他们刷新一个csv文件,列出所有活跃候选人的数据。还有一个cron作业将csv文件同步到Django Candidates模型。

现在,当管理员想要向团队添加新的开发人员时,他应该能够:

  • 从候选模型中选择一个候选人,并将个人数据“复制”到Developer表中。 Team_name,薪水和其他字段是手动添加的
  • 当开发人员不是通过外部招聘公司招聘时,管理员应该能够手动添加个人信息。

我可以在Developers模型中一对一引用Candidate,但这样做的缺点是Candidate列表中还有活跃的开发人员,因此无法同步到招聘人员的csv文件。我希望只选择将候选模型中的个人数据复制到开发者模型,或者手动添加它们。

非常感谢任何关于如何做到这一点的想法!

1 个答案:

答案 0 :(得分:1)

这是multi-table inheritance的理想选择。

示例:

    $this->JobOrdersEducations->patchEntity($joe,
            [
                'degree_disciplines' => [
                    [
                        'id' => $degree_discipline_id,
                        '_joinData' => [
                            "criticality_id" => $criticality_id
                        ]
                    ],
                ]
            ]
    );
    $this->JobOrdersEducations->save($joe);

正如您所看到的那样,它几乎可以自行编写,您可以在Django后端编写自定义AdminAction来执行此操作,或者为其编写视图。