Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:检查列表中是否存在模型实例或返回最新添加的数据_Python_Django - Fatal编程技术网

Python Django:检查列表中是否存在模型实例或返回最新添加的数据

Python Django:检查列表中是否存在模型实例或返回最新添加的数据,python,django,Python,Django,我有一个来自两种不同型号的查询集的列表新的和旧的: 现在,我想获取添加到两个模型中每个模型的最旧数据,或者获取最新添加到模型的id n = min([p.id if isinstance(p, New) else New.objects.latest('id').id for p in all_list]) o = min([p.id if isinstance(p, Old) else Old.objects.latest('id').id for p in all_list]) 例如,如果

我有一个来自两种不同型号的查询集的
列表
新的
旧的

现在,我想获取添加到两个模型中每个模型的最旧数据,或者获取最新添加到模型的id

n = min([p.id if isinstance(p, New) else New.objects.latest('id').id for p in all_list])
o = min([p.id if isinstance(p, Old) else Old.objects.latest('id').id for p in all_list])
例如,如果列表中没有
Old
的实例,并且在
Old
模型中还没有保存,我将有Old matching query not exit错误


如何通过分配
o=0来处理该错误,而不必使用
try。。。除了

我想没有内置的方法来逃避DoesNotExist异常

您可以尝试做的一件事是创建一个处理它的函数,然后调用它。这样,在主函数中只会得到一行,如:

自定义函数 主要功能
这就成功了。甚至更像蟒蛇。
def get_latest(cls):
    try:
        return cls.objects.latest('id').id
    except .. :
        return 0
n = min([p.id if isinstance(p, New) else get_latest(New) for p in all_list])
o = min([p.id if isinstance(p, Old) else get_latest(Old) for p in all_list])