我正在努力为我的项目获得正确的查询。 这是一个示例或我的模型:
from django.db import models
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()
def __unicode__(self):
return self.name
class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()
def __unicode__(self):
return u'%s %s' % (self.first_name, self.last_name)
class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
def __unicode__(self):
return self.title
如何从图书类中获取发布者,例如我想让所有出版商拥有标题为'hello'的所有书籍? 谢谢
答案 0 :(得分:39)
如果您想获得发布商,则必须从Publisher
开始。这意味着您必须向后查询Book→Publisher关系。以下是文档对此的说法:
Lookups that span relationships
要跨越关系,只需使用跨模型的相关字段的字段名称,以双下划线分隔,直到到达所需的字段
...
要引用“反向”关系,只需使用模型的小写名称。
查询:
Publisher.objects.filter(book__title__startswith='hello')