我有一个中间模型 -
class Link_Book_Course(models.Model):
book = models.ForeignKey(Book)
course = models.ForeignKey(Course)
image = models.CharField(max_length = 200, null=True)
rating = models.CharField(max_length = 200,null=True)
def save(self,*args,**kwargs):
self.date_created = datetime.now()
super(Link_Book_Course,self).save(*args,**kwargs)
我需要从指定的Link_Book_Course获取书名和书名(这是Book的属性)。
这是我提出的,但它不起作用 - 实例显然无法访问经理 -
storedCourse = Link_Book_Course.objects.filter(course__name= nameAndNumberStore[0] + nameAndNumberStore[1])
storedLink = Link_Book_Course.objects.filter(course = storedCourse)[0]
storeOfAuthorNames = storedLink.objects.values('book__author')
storeOfBookNames = storedLink.objects.values('book__title')
编辑 - 没关系,我已经把它想出来 - 为了参考 - 你不能通过外键关系获得属性。
相反,我过滤了具有用户搜索过的课程的图书。
答案 0 :(得分:2)
这是一种更简单的方法!
>>> course = Course.objects.filter(name= nameAndNumberStore[0] + nameAndNumberStore[1])
>>> links = course.link_book_course_set.all()
>>> BookAuthorNames = [(link.book.title, link.book.author) for link in links]
(('Book1','Author1'),('Book2','Author2'),...)
请记住,django ORM功能强大!