我的数据库中有一个名为Item的模型。这是模特
class Item(models.Model):
item_title = models.CharField("Item title: ", max_length=50)
item_description = models.CharField("Item description: ", max_length=200)
starting_price = models.FloatField( default = 0)
picture = models.ImageField(upload_to = 'gallery')
finishTime = models.DateTimeField("Finish time: ")
ownerID = models.ForeignKey(User, on_delete = models.CASCADE)
higestBid = models.FloatField()
highestBidderID = models.IntegerField(blank=True, default=-1)
active = models.BooleanField(default = True)
我想在views.py中创建一个函数,该函数将检查数据库中每个项目的“活动”字段。我怎样才能做到这一点?我试图做到这一点:
items = list(Item.object.values())
for i in range(items):
print(item[i].active)
但是,它不起作用。任何帮助表示赞赏
您应该遍历queryset本身:
for item in Item.objects.all():
print(item.active)
请不要不使用.values()
[Django的DOC] 。您仅应将其用于某些特定情况,例如按特定值分组。通过使用对象,您仍将使用模型对象,因此仍可以访问在该对象上添加的某些逻辑。
此外,最好不要使用list(..)
。AQuerySet
是懒惰的,因此,如果您以某种方式从不对其进行迭代,则它将不会进行查询。此外,您还可以对现有进行额外的过滤QuerySet
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句