Python / Django - 查询数据库

时间:2018-02-27 16:11:32

标签: python django

所以我在本地主机127.0.0.1:8000上运行了一个Django API服务器。

这是我的models.py:

的布局

models.py

class Book(models.Model):
    title = models.CharField(max_length=100)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()

    def __str__(self):
        return u'%s' % (self.title)

class Publisher(models.Model):
    name = models.CharField(max_length=50)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=50)
    website= models.URLField()

    def __str__(self):
        return u'%s' % (self.name)

我在 views.py 文件中运行如下查询:

book_list = Book.objects.all().values('title','publisher','publication_date')

当运行和处理此查询时,该值似乎返回其原始表中的发布者索引,而不是链接到它的名称(例如,如果它是第3个发布者)发布者表,然后将为发布者返回值3。

有没有办法获得每个值链接到的发布者的实际名称?

非常感谢!

1 个答案:

答案 0 :(得分:5)

使用字段查找来访问嵌入对象属性:https://docs.djangoproject.com/en/2.0/topics/db/queries/#field-lookups

此处使用book_list = Book.objects.all().values('title','publisher__name','publication_date')