2010-09-30 3 views
3

Если у меня есть две Модели, у которых есть многоголосные отношения с сквозной моделью, как мне получить данные из этой таблицы?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' с myBike.users.all(), но как мне получить свойство 'comment'?

Я хотел бы сделать что-то вроде

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

ответ

6

Сквозной таблица связана стандартным ForeignKeys, так что вы нормальный ForeignKey поиска. Не забывайте, что есть комментарий для каждого байкера, то есть для каждого байка/пользователя.

for myBikeUser in myBike.bikeuser_set.all(): 
    print myBikeUser.comment, myBikeUser.user.first_name