我想在queryset中获取项目编号。你知道吗
在纯python中,我们可以这样做,以在列表中查找项目编号:
a = 1
numbers = [1, 2, 3, 4]
numbers.index(a)
>>> 0
在django querysets中,我不能这样做,但我可以这样做:
# a - some instance of `model_name` model.
qs = model_name.objects.all()
model_name_objects = list(qs)
model_name_objects.index(a)
从查询集到列表,这是一个昂贵的操作吗?你知道吗
升级版: 用例:
我有两个模型:
class Order(models.Model):
# some fields
class OrderItem(models.Model):
order = models.ForeignKey(Order, related_name='order_items')
我想知道哪个号码有OrderItem实例Order.Order\u项目.all()查询集。你知道吗
升级2:
我想在OrderItem admin字段中显示此数字:
class OrderItemAdmin(admin.ModelAdmin):
model = OrderItem
# some standart fields
list_display = ('display_item_number')
def display_item_number(self, obj):
b = obj.order.order_items.all().count()
return '{}/{}'.format(a, b)
其中a
是Order.Order\u项目.all()查询集。你知道吗
您可以避免评估整个查询集,例如
Django和底层db库将在您遍历queryset时获取查询结果页。你知道吗
我猜对于您的用例,您正在考虑以下内容:
您可能期望单个订单只会有少量的订单项,并且您的代码无论如何都必须显示它们。。。在这种情况下,只列出整个查询集可能没什么大不了的。你知道吗
相关问题 更多 >
编程相关推荐