Python 从另一面获取多对多的一面
我将以下三个模型与多对多关系联系起来:Python 从另一面获取多对多的一面,python,django,django-models,Python,Django,Django Models,我将以下三个模型与多对多关系联系起来: 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, thr
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)
我想建立一个团队成员的对象列表,这些成员属于某个特定的报告(由所有者指定),但遇到了问题。目前我有报告的ID。我试过这个,但似乎不对:
owners = TeamMember.objects.filter(report__id=id).distinct().values_list('name', flat=True)
TeamMember
模型中没有字段name
。您有成员名称
owners = TeamMember.objects.filter(report_id=id).distinct().values_list('member_name', flat=True)
另一方面,您可以使用
report\u id
而不是需要联接操作的report\u id
。在TeamMember
模型中没有字段name
。您有成员名称
owners = TeamMember.objects.filter(report_id=id).distinct().values_list('member_name', flat=True)
另一方面,您可以使用report\u id
而不是需要联接操作的report\u id