是否有一种从django查询集中“提取”相关对象列表的简单方法?

时间:2013-11-04 22:56:21

标签: django django-models django-queryset

我有一个相当复杂的模型设置:

class Tournament(models.Model):
     pass

class Category(models.Model): 
    pass

class Discipline(models.Model):
    pass

class Judge(models.Model):
    pass

class Evaluation(models.Model):
    tournament = models.ForeignKey(Tournament)
    judge = models.ForeignKey(Judge)
    discipline = models.ForeignKey(Discipline)
    category = models.ForeignKey(Category)

当然,这些模型是不完整的,但它们的内容对于问题并不重要......鉴于锦标赛,我需要获得不同的“类别”对象,以及针对每个对象评估的“学科”

我试过这个:

eval_set = tournament_object.evaluation_set.distinct('category')
categories = [jdgt.categoria for jdgt in eval_set]

有没有更清洁的方式?我觉得应该有一种“提取('类别')”,我可以在查询集上调用... 任何想法将不胜感激!!!!

1 个答案:

答案 0 :(得分:3)

试试这个:

categories = tournament_object.evaluation_set.distinct( 'category' ).values_list('categoria', flat=True)

详细了解values_list here