3

如果我有两个与直通模型具有多对多关系的模型,我如何从该“直通”表中获取数据。

class Bike(models.Model):
   nickname = models.CharField(max_length=40)
   users    = models.ManyToManyField(User, through='bike.BikeUser')

BikeUser 类

class BikeUser(models.Model):
   bike     = models.ForeignKey(Bike)
   user     = models.ForeignKey(User)
   comment  = models.CharField(max_length=140)

我会为那辆自行车添加一个用户(假设我已经有一个 myBike 和一个 myUser )

BikeUser.objects.create(bike = myBike, user = myUser, comment = 'Got this one at a fancy store')

我可以使用 myBike.users.all() 获取“myBike”上的所有用户,但如何获得“comment”属性?

我想做类似的事情

for myBikeUser in myBike.users.all():
   print myBikeUser.comment
4

1 回答 1

6

直通表由标准外键链接,因此您可以进行正常的外键查找。不要忘记每个自行车用户都有一个评论,即每个自行车/用户配对都有一个评论。

for myBikeUser in myBike.bikeuser_set.all():
    print myBikeUser.comment, myBikeUser.user.first_name
于 2010-09-30T19:04:24.680 回答