Django ManytoMany和通过

时间:2013-10-07 20:00:26

标签: django django-models django-database

我有以下型号:

class Book(models.Model):    
    ASIN = models.CharField(max_length=255, primary_key=True)
    title = models.CharField(max_length=255)
    users = models.ManyToManyField(FacebookCustomUser, through='BookRatings')

class BookRatings(models.Model):
    user = models.ForeignKey(FacebookCustomUser)
    book = models.ForeignKey(Book)
    rating = models.IntegerField()

现在我想获取已登录用户的所有图书和评分。我尝试了以下方法:

books = request.user.book_set.all()

但现在在书中没有评级的字段。我做错了什么?

1 个答案:

答案 0 :(得分:2)

book_set为您提供Book记录,而不是BookRating记录。你可以通过标准的反向关系得到它:

request.user.bookratings_set.all()

这将有评级字段,加上book ForeignKey来获取图书。