自动填充 Django 模型

时间:2021-01-12 18:04:23

标签: django django-models

我正在构建一个显示项目中包含的测试的应用程序。用户可以设置每个测试的测试结果。我的模型包含 3 个基本类:

要求 - 在这门课中,我想举行所有测试。类似于模板表。

class Requirement(models.Model):
    requirement_name = models.CharField(max_length=256, default=None)
    nist = models.CharField(max_length=10, blank=True, null=True, default=None)
    cwe = models.CharField(max_length=10, blank=True, null=True, default=None)

Project - 包含用户创建的所有项目

class Project(models.Model):
    project_name = models.CharField(max_length=256, default=None)
    date_made =models.DateTimeField(auto_now_add=True)
    owner = models.ForeignKey(User, default=None, on_delete=models.CASCADE)
    requirements = models.ManyToManyField(Requirement, through='ReqsProject')

ReqsProject - 在这个表中,我想存储存储在类需求中的所有需求

class ReqsProject(models.Model):
    project = models.ForeignKey(Project, default=None, on_delete=models.CASCADE)
    requirement = models.ForeignKey(Requirement, default=None, on_delete=models.CASCADE)
    status = models.BooleanField(default=True, blank=True)
    result = models.BooleanField(default=True, blank=True)

    class Meta:
        unique_together = [['project', 'requirement']]

由于属性“状态”和“结果”,我无法使用 ManyToManyField。如何使用每个 Requirement_ids 和特殊的一个 project_id 自动填充表 ReqsProject ?这可能是这样的:

<头>
ID 项目 ID 需求 ID 状态 结果
1 1 1 - -
2 1 2 - -
3 1 3 - -
4 1 4 - -
... .... .... .. ...

0 个答案:

没有答案