Django 中属性的布尔组合
Boolean combination of attributes in 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
我的问题是,如何向每门课程添加 Requirement 的布尔组合?
例如:
A Bachelor of Physics (Course) has the following Requirements:
(70% in Physics) AND (50% in Mathematics 3 OR 45% in Mathematics 4)
附加信息:因为几门课程可能有相同的要求(例如物理中的 70%),但每门课程可能有几个要求,我打算使用 m2m 模型。
你可以制作一个 CompoundRequirement
,它有一些要求,它 OR
在一起(与 ManyToManyField
)然后每个 class 有一些 Requirement
s 和一些 CompoundRequirement
s。 AND 由多个要求处理,因此您只需要处理 OR。
我正在使用 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
我的问题是,如何向每门课程添加 Requirement 的布尔组合?
例如:
A Bachelor of Physics (Course) has the following Requirements:
(70% in Physics) AND (50% in Mathematics 3 OR 45% in Mathematics 4)
附加信息:因为几门课程可能有相同的要求(例如物理中的 70%),但每门课程可能有几个要求,我打算使用 m2m 模型。
你可以制作一个 CompoundRequirement
,它有一些要求,它 OR
在一起(与 ManyToManyField
)然后每个 class 有一些 Requirement
s 和一些 CompoundRequirement
s。 AND 由多个要求处理,因此您只需要处理 OR。