Django 返回查询列表而不是一个项目查询



我正在使用过滤器在 django 模型中查询,但是 而不是查找查询列表,我希望 django 返回一个查询

product = Product.objects.filter(slug=slug)

它返回<QuerySet [<Product: Product object (2)>]>

相反,我想要这样的东西

<Product: Product object (2)>

所以我可以访问该对象的字段,例如product.price

您正在使用将返回查询集的过滤器。 如果需要与条件匹配的项,请使用 get。

product = Product.objects.get(slug=slug)

如果您知道您的结果中只有一个项目,您可以直接使用第一个项目访问它

product = Product.objects.filter(slug=slug).first()

或使用 get:

from django.core.exceptions import ObjectDoesNotExist
try:
p = Product.objects.get(slug=slug)
except ObjectDoesNotExist:
print("That product doesn't exist.")

如果结果中有项目列表,请循环访问它们:

products = Product.objects.filter(slug=slug)
for product in products:
print(product.price)

最新更新