mb5*_*089 5 django django-errors
我是django的新手.我需要检查查询集是否返回任何值,如果没有,则跳转到循环中的下一个项目.我试过尝试..除了ObjectDoesNotExist,这是行不通的.如果过滤器没有找到任何东西,它会返回什么?我该如何检查?
这是现有的代码:
def assign_family_riders(leg):
remaining_leg_riders = list(leg.riders.all())
for car in CarAssignment.objects.filter(leg=leg):
driver_family = car.driver.family
try:
riders = leg.riders.all().filter(family=driver_family)
except ObjectDoesNotExist:
continue
for rider in riders:
car.riders.add(rider)
remaining_leg_riders.remove(rider)
return remaining_leg_riders
Run Code Online (Sandbox Code Playgroud)
您无需专门检查.如果过滤器未返回任何对象,则将返回EmptyQuerySet并且永远不会输入forloop.
riders = leg.riders.filter(family=driver_family)
for rider in riders:
...
Run Code Online (Sandbox Code Playgroud)
如果你真的想,你可以简单地做:
riders = leg.riders.filter(family=driver_family)
if riders:
for rider in riders:
...
Run Code Online (Sandbox Code Playgroud)
该ObjectDoesNotExist异常只是提出,当你试图检索使用特定的记录get():
try:
rider = leg.riders.get(...)
except Rider.DoesNotExist:
...
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6620 次 |
| 最近记录: |