2016-05-18 24 views
0

我有以下三种模式有许多联系起来,以一对多的关系:许多的一侧获得了许多来自其他

class TeamMember(models.Model): 
    member_name = models.CharField(max_length=140) 
    title = models.CharField(max_length=140, null=True, blank=True) 
    email = models.EmailField() 
    report = models.ManyToManyField(Report, through='Owner') 

class Report(models.Model): 
    report_name = models.CharField(max_length=140) 
    report_description = models.TextField(null=True, blank=True) 
    last_updated = models.DateTimeField(null=True, blank=True) 
    metric = models.ManyToManyField(Metric, through='MetricAssociation') 

class Owner(models.Model): 
    teammember = models.ForeignKey(TeamMember, on_delete=models.CASCADE) 
    report = models.ForeignKey(Report, on_delete=models.CASCADE) 

我想建立谁属于特定TeamMembers的对象列表报告(由所有者指定)但有麻烦。目前我有该报告的ID。我想这一点,但它似乎是错误的:

owners = TeamMember.objects.filter(report__id=id).distinct().values_list('name', flat=True) 

回答

3

有一个在TeamMember型号场name。你有member_name代替

owners = TeamMember.objects.filter(report_id=id).distinct().values_list('member_name', flat=True) 

在一个侧面说明,您可以使用report_id代替report__id这需要一个连接操作。