django Manytomany 通过
如果我有两个模型与直通模型具有多对多关系,那么如何从该“直通”表中获取数据。
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”上的所有用户,但是如何获得“评论”财产?
我想做类似的事情
for myBikeUser in myBike.users.all():
print myBikeUser.comment
If I have two Models that have a manytomany relationship with a through model, how do I get data from that 'through' table.
class Bike(models.Model):
nickname = models.CharField(max_length=40)
users = models.ManyToManyField(User, through='bike.BikeUser')
The BikeUser class
class BikeUser(models.Model):
bike = models.ForeignKey(Bike)
user = models.ForeignKey(User)
comment = models.CharField(max_length=140)
And I would add a user to that bike (presuming I have a myBike and a myUser already)
BikeUser.objects.create(bike = myBike, user = myUser, comment = 'Got this one at a fancy store')
I can get all the users on 'myBike' with myBike.users.all() but how do I get the 'comment' property?
I would like to do something like
for myBikeUser in myBike.users.all():
print myBikeUser.comment
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
直通表由标准外键链接,因此您可以执行正常的外键查找。不要忘记每个自行车用户都有一个注释,即每个自行车/用户配对都有一个注释。
The through table is linked by standard ForeignKeys, so you do a normal ForeignKey lookup. Don't forget that there's a comment for each bikeuser, ie one for each bike/user pairing.