如果Django中的ManyToMany关系,我正在尝试对整个模型进行复杂的注释。
我的数据库架构大致如下:
ALTER table STUDENT drop CONSTRAINT <constraint_name>
我有一个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)
class Task(models.Model):
pass
class ContestTaskRelationship(models.Model):
contest = models.ForeignKey('Contest', on_delete=models.CASCADE, related_name='contest_task_relationship')
task = models.ForeignKey('Task', on_delete=models.CASCADE, related_name='contest_task_relationship')
solved = models.ManyToManyField('User', related_name='contest_task_relationship', blank=True)
cost = models.IntegerField(default=0)
tag = models.ForeignKey('TaskTag', on_delete=models.SET_NULL, related_name='contest_task_relationship',
null=True, blank=True)
对象,需要加载其contest
,如果参与者在{中,则每个对象都注有与participants
相对应的直通模型对象的cost
个字段的总和{1}}通过模型对象建立的m2m关系。我不知道如何进行如此复杂的注释。我尝试过使用contest
进行操作,但是没有运气。有任何想法该怎么做吗?
UPD::我尝试了以下操作:
solved
,但是它只对每个子查询中的第一个Subquery
求和。为什么?