我正在使用Django来概述大学课程与高中学科要求之间的关系。
到目前为止,我有以下模型:
class Course(models.Model): title = models.CharField(max_length=100) #(e.g. Bachelor of _____) ft_years = models.SmallPositiveIntegerField() #years of full time study class Requirement(models.Model): subject = models.CharField(max_length=50) #(e.g. Mathematics 3) score = models.DecimalField(max_digits=3) #(e.g. 70) percent = models.NullBooleanField() #True if score is in percent
我的问题是,如何为每个课程添加一个布尔组合要求?
例如:
物理学士(课程)具有以下要求:
(70%在物理学上) AND (50%在数学3 OR 45%在数学4)
其他信息:由于多个课程可能共享相同的要求(例如物理学中的70%)但每个课程可能有多个要求,我计划使用m2m模型。
答案 0 :(得分:1)
您可以制作一个CompoundRequirement
,其中OR
具有一定数量的要求(ManyToManyField
),然后每个类都有一些Requirement
和一些CompoundRequirement
秒。 ANDs由多个要求处理,所以你需要处理的只是OR。