python - Django:for循环和if条件在一行
问题描述
我想把if dynamic_tickets:
和for ticket in dynamic_tickets:
放在一条线上。我总是收到语法错误。你有一个想法,如何实现?
def adjust_prices():
events = Event.objects.filter(status=EventStatus.LIVE)
active_events = [event for event in events if not event.is_over]
for active_event in active_events:
dynamic_tickets = [
ticket for ticket in active_event.tickets.all() if ticket.dynamic_pricing_activated()
]
if dynamic_tickets:
for ticket in dynamic_tickets:
print(ticket)
print("DO OTHER STUFF")
解决方案
不需要使用 'if dynamic_tickets:' ,因为当列表 'dynamic_tickets' 不为空时,只会执行 for 循环。只需编写如下代码:
def adjust_prices():
events = Event.objects.filter(status=EventStatus.LIVE)
active_events = [event for event in events if not event.is_over]
for active_event in active_events:
dynamic_tickets = [
ticket for ticket in active_event.tickets.all() if
ticket.dynamic_pricing_activated()
]
for ticket in dynamic_tickets:
print(ticket)
print("DO OTHER STUFF")
推荐阅读
- azure - 如何将 Azure Resource sku api 数据链接到 Azure 消费价格表 api 计量数据?
- c# - 如何修复 Microsoft Store 包验证错误:您无法提交预编译的 .NET Native 包?
- shiro - 将登录限制为可调整的角色集的最佳方法
- r - R: NULL 值作为符号地址传递,.Call(RS_PostgreSQL_init, config.params, force) 中的错误:
- sqlite - Windows 10 中的 Delphi FireDAC SQLite 默认数据库路径
- angularjs - EasyFB 没有准备好
- laravel - 在不更改数据类型的情况下将 laravel 迁移更新为可为空
- excel - 在 VBA 中动态设置工作表
- mongodb - Deno 没有连接到 mongodb
- python - ubuntu中的方向