Django models 选择并筛选相关模型

Django models 选择并筛选相关模型,django-models,django-queryset,Django Models,Django Queryset,我有以下型号: class Competition(models.Model): # ... class Result(models.Model): # ... competition = ForeignKey(Competition, on_delete=models.CASCADE, related_name='individual_results',

我有以下型号:

class Competition(models.Model):
    # ...

class Result(models.Model):
    # ...
    competition = ForeignKey(Competition, on_delete=models.CASCADE,
                             related_name='individual_results',
                             related_query_name='individual_results')
    athlete = ForeignKey(Athlete, on_delete=models.CASCADE)

class Athlete(models.Model):
    # ...
我想做的是为每个运动员创建一个概述,并显示按比赛分组的该运动员的结果

试过这样的方法:

athlete = Athlete.objects.get(pk=1)
competitions = Competition.objects
                .prefetch_related('individual_results')
                .filter(individual_results__athlete=athlete)
但是当我进行比赛时,在一个模板中,它会显示比赛的所有结果,而不仅仅是该运动员的结果。

a
.filter(…)
不会过滤相关的经理。它可用于聚合时进行筛选,但不能用于预回迁管理器中的项目

但是,您可以使用,例如:

results=Result.objects.filter(运动员id=1)
竞争=竞争。对象。预取\u相关(
预回迁('individual_results',queryset=results,to_attr='Athletor_results'))
)
现在,
id=1的运动员的个人成绩存储在由该查询集产生的
比赛
s中的属性
attribute\u results

results = Result.objects.filter(athlete_id=1)
competitions = Competition.objects.prefetch_related(
    Prefetch('individual_results', queryset=results, to_attr='athlete_results')
)