2016-05-18 16 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這需要一個連接操作。