首页 > 解决方案 > 当只有一个项目要迭代时,我可以避免使用循环吗?

问题描述

我有一个 Django 拍卖项目(CS50 课程作业),并且在 views.py 中有以下功能:

def show_item(request, items):
items = Listing.objects.filter(item = items)

for item in items:
    ends = item.date + timedelta(days=7)
return render(request, "auctions/show_item.html",{
     "items":items, "ends": ends
    })

这允许我显示项目及其结束日期。我的问题是,由于循环中只有一个迭代(我在模板视图上显示一个待拍卖的物品),没有更清洁的方法吗

ends = item.date + timedelta(days=7)?

(即只需要获取模型中的item date字段)不需要for循环?我试过了 :ends = items.date + timedelta(days=7)

但得到一个错误?谢谢罗素

标签: pythondjango-models

解决方案


您可以使用 [0] 引用第一项:

ends = items[0].date + timedelta(days=7)

推荐阅读