我正在构建一个显示项目中包含的测试的应用程序。用户可以设置每个测试的测试结果。我的模型包含 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 | - | - |
... | .... | .... | .. | ... |