【发布时间】:2018-12-04 22:19:11
【问题描述】:
我有以下方案:
class User(AbstractUser):
pass
class Task(models.Model):
pass
class Contest(models.Model):
tasks = models.ManyToManyField('Task',
related_name='contests',
blank=True,
through='ContestTaskRelationship')
participants = models.ManyToManyField('User',
related_name='contests_participated',
blank=True,
through='ContestParticipantRelationship')
class ContestTaskRelationship(models.Model):
contest = models.ForeignKey('Contest', on_delete=models.CASCADE)
task = models.ForeignKey('Task', on_delete=models.CASCADE)
cost = models.IntegerField()
class ContestParticipantRelationship(models.Model):
contest = models.ForeignKey('Contest', on_delete=models.CASCADE)
user = models.ForeignKey('User', on_delete=models.CASCADE)
task = models.ForeignKey('Task', on_delete=models.CASCADE, related_name='contests_participants_relationship')
is_solved = models.BooleanField()
现在我得到了contest 对象,需要获取tasks 字段上的所有任务,用用户数注释的rach 解决了它。所以,我需要计算ContestParticipantRelationship 的数量,需要task,需要contest 和is_solved 设置为True。如何进行这样的查询?
【问题讨论】:
-
User可以解决一个任务多次次吗? -
@WillemVanOnsem,不
标签: django many-to-many django-queryset