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')
)