我使用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(数学3 50%OR数学4 45%)
其他信息:因为几个课程可能有相同的要求(例如物理学的70%),但每个课程可能有几个要求,我计划使用m2m模型。
您可以创建一个CompoundRequirement
,它有一定数量的需求,并将它们OR
s(与ManyToManyField
一起),然后每个类都有一些Requirement
s和一些CompoundRequirement
s。and是通过具有多个需求来处理的,所以您只需要处理OR。