我已经在循环范围内硬编码了3,因为我无法得到实际的长度。我尝试列出可用的特性,但没有找到任何print(dir(Todo_Item.objects))。也许还有其他更好的方法来迭代对象并在它结束时停止?这是我在循环范围内硬编码了3的代码。
def home_view(request):
display_list = []
for i in range(3):
display_list.append(Todo_Item.objects.get(id=i+1).task)
.......some code below as well.......
我的Todo应用运行正常,没有任何错误,但唯一的问题是这个非动态循环。
2条答案
按热度按时间vktxenjb1#
如果您不需要任何过滤,您可以这样做:
你也可以把它迭代到你的模板中:
初步将
todo_items
添加到渲染上下文中。sqxo8psd2#
我对Django有点生疏了,但我认为你需要的是一次获取所有的Todo_Items并迭代它们。为此,你可能需要使用all()方法来获取整个QuerySet。这样,你就可以迭代它返回的每一项:
再次声明,我对Django的使用非常生疏,但我认为还有一种方法可以一次性为您选择的每一项获取
task
值,但我不记得具体是怎么做的了。Django有一个强大的查询语法,所以请查看这些页面来了解更多:https://docs.djangoproject.com/en/3.1/topics/db/queries/https://docs.djangoproject.com/en/3.1/ref/models/querysets/