我有以下型号:
class DisputeAssignments(models.Model):
case_id = models.ForeignKey(Case, on_delete=models.CASCADE, related_name='dispute_assigned_to')
user_id = models.ForeignKey('users.User', on_delete=models.CASCADE, blank=False, null=False, related_name='assigned_disputes')
assignment_date = models.DateTimeField()
class Case(models.Model):
sn = models.CharField(max_length=100, verbose_name=_('Serial number'))
user = models.ForeignKey('users.User', on_delete=models.PROTECT, related_name='cases')
class FullVector(models.Model):
full_feature_vector = models.BinaryField()
version = models.FloatField()
processed_on = models.DateTimeField()
case = models.ForeignKey(Case, on_delete=models.CASCADE, related_name='full_vectors')
class ShortVector(models.Model):
id = models.BigAutoField(primary_key=True)
detailed_fv_version = models.BinaryField()
full_vector = models.ForeignKey(FullVector, on_delete=models.CASCADE, related_name='short_vectors')
short_vector = models.BinaryField(null=True)
class Prediction(models.Model):
id = models.BigAutoField(primary_key=True)
short_vector = models.ForeignKey(ShortVector, on_delete=models.CASCADE, related_name='predictions', null=True, default=None)
verif_req = models.SmallIntegerField(default=1)
现在,这种关系允许出现以下情况:来自FullVector模型的多个条目指向同一个案例条目。此外,总是有多个短向量条目指向同一个FullVector条目,并且总是有一个预测条目指向每个短向量条目
Example:
Case --> FullVector1 --> ShortVector1 --> Prediction1
| |-> ShortVector2 --> Prediction2
| |-> ShortVector3 --> Prediction3
| \-> ShortVector4 --> Prediction4
|
\-> FullVector2 --> ShortVector5 --> Prediction5
|-> ShortVector6 --> Prediction6
|-> ShortVector7 --> Prediction7
\-> ShortVector8 --> Prediction8
我需要编写一个Django ORM查询,对于每个DisputeAssignment条目,该查询将检查与之关联的所有预测条目(通过大小写->;不同的FullVector和ShortVector条目)是否具有大于-1的verif_req值
我从这个开始:
DisputeAssignments.objects.filter(case_id__full_vectors__short_vectors__predictions__verif_req__gt=-1)
但是上述方法失败了,例如,如果FullVector1相关的预测功能全部为0,而FullVector2相关的预测功能全部为-1。我希望这种情况会导致忽略此DisputeAssignment条目,但由于FullVector1相关条目满足verif_req>;的要求,因此它被保留在QuerySet中-1.
您可以得到
DisputeAssignments
,其中verif_req
不是<;=-1加Q相关问题 更多 >
编程相关推荐