Django最佳方法检查查询集的模型类型

31

我有一个Django操作函数,我想在不同模型的queryset上使用它。

如何最好地检查我的queryset由哪个模型组成?比如说我想检查是否存在models.py中定义的Library类。

目前,我可以使用以下方法使其正常工作

for object in queryset :
    if object.__class__.__name__  == "Library"

但我相信有更好的方法来做这件事。

我猜想可以使用queryset.model以某种方式完成操作。我尝试了以下方法,但它并没有达到我的预期:

import myapp.models.Library

def my function(modeladmin,request  queryset )

    if isinstance(queryset.model , Library ) :
        # do something specific here

你可以使用 modeladmin.model 来查找模型。 - Timmy O'Mahony
是的,但这与queryset.model给我的相同。 - wobbily_col
1个回答

61

好的,我明白了,我应该使用is而不是isinstance()


if queryset.model is Library :
    # do something. 

当此检查失败时,应该引发什么异常? - Rafał Sroka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接