如何从Manytomany Field Django获取数据

时间:2020-03-16 06:22:19

标签: django django-models django-orm

因为我有很多用户。我想获取参加特定会话的用户的名称 Players_Participating

class MyUser(AbstractBaseUser):

    user_name=models.CharField(max_length=10,blank=True,null=True,unique=True)

    def __str__(self):
        return str(self.user_name)

class Session(models.Model):

    Host=models.ForeignKey(MyUser,on_delete=models.CASCADE,related_name='host')
    game=( 
        ('cricket','cricket'),
        ('football','football'),
        ('basketball','basketball'),
        ('hockey','hockey'),
        ('gym','gym'),
        ('baseball','baseball'),
    )

    Sport=models.CharField(max_length=20,choices=game)

    Players_Participating=models.ManyToManyField(MyUser,related_name='related')
    def __str__(self):

        return str(self.Host)

1 个答案:

答案 0 :(得分:0)

您可以尝试像这样使用prefetch_related:

s = Session.objects.get(that particular session).prefetch_related('host')

此外,该问题已在herehere之前得到了解答 您会在其中找到很多对您有所帮助的链接。 :)