Python / Django - 相同的尝试/除外

时间:2016-06-13 09:13:06

标签: python django

实际上我在同一视图中有3次尝试/除外,因为我在模型中使用了3个对象。问题是我在我的代码中重新开始,我不喜欢这样。

以下是代码:

    try:
    menuDetail = Menu.objects.get(id=menuId)
except Menu.DoesNotExist:
    return logoutUser(request)
try:
    menuItem = MenuItem.objects.get(id=menuItemId)
except MenuItem.DoesNotExist:
    return logoutUser(request)
try:
    menuItemProd = MenuItemProd.objects.get(id=menuItemId)
except MenuItemProd.DoesNotExist:
    return logoutUser(request)

我添加第三个例外时出现此错误:全局名称' logoutUser'没有定义。

你对这个问题有所了解吗?感谢您抽出时间解决我的问题:)

1 个答案:

答案 0 :(得分:0)

在此处发帖以便于阅读。

您可以这样重写代码:

try:
    menuDetail = Menu.objects.get(id=menuId)
    menuItem = MenuItem.objects.get(id=menuItemId)
    menuItemProd = MenuItemProd.objects.get(id=menuItemId)
except (Menu.DoesNotExist, MenuItem.DoesNotExist, MenuItemProd.DoesNotExist):
    return logoutUser(request)