Django中属性的布尔组合



我使用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,它有一定数量的需求,并将它们ORs(与ManyToManyField一起),然后每个类都有一些Requirements和一些CompoundRequirements。and是通过具有多个需求来处理的,所以您只需要处理OR。

最新更新