gpt4 book ai didi

django - 在 Django ORM 中使用列过滤器获取主键 ID

转载 作者:行者123 更新时间:2023-12-04 02:40:01 24 4
gpt4 key购买 nike

我有一张 table 书籍在我的 Postgresql 中。下图是表结构的外观。

enter image description here

现在,我有 book_name " 249 ",我想得到它对应的主键 5。下面是我试图做的查询,但 Django 抛出了一个错误。

我的书名 = 249

books.model.filter(book_name=my_book_name).get('book_id') # Not Working

有人可以建议正确的 ORM 查询以获取 book_name 的相应 book_id 吗?

备注 :- 我删除了 PK=4 这就是它在列中丢失的原因。

最佳答案

您可以使用 .values(..)这里:

Books.objects.values('book_id').get(book_name=my_book_name)['book_id']

但是使用 .values(..)通常不是一个好主意。通常你会得到一个 Book对象进入内存,如:
book = Books.objects.get(book_name=my_book_name)
book.book_id # 5

但即便如此,多本书(或根本没有书)也可能有这个名字。所以你应该使用 .filter(..)获取 QuerySetBook s。一个 QuerySet是一个惰性集合,因此可以包含零个、一个或多个 Book这里的对象:
books = Books.objects.filter(book_name=my_book_name)

关于django - 在 Django ORM 中使用列过滤器获取主键 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59830715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com