我做过类似的事情
def Categories(self):
category_list = Category.objects.values_list("category", flat=True).filter(created_by=self.request.user)
print(category_list)
for categories in category_list:
print(categories)
当我这样做时,第一个print语句打印出我的模型中的类别列表,但是当我尝试迭代它时,它只给出第一个值..
就像第一次打印在shell [u'hi',u'ho',u'hell']
上一样
但是当我迭代第二次打印时只给出'hi'。
我不知道发生了什么
答案 0 :(得分:0)
values_list
不会返回list
,而是ValuesListQuerySet
,这是一种迭代器,第一个print
可能会移动它的指针或其他东西。
将其转换为list
,它应该可以正常工作。
category_list = list(Category.objects.values_list("category", flat=True).filter(created_by=self.request.user))